2012-02-20 8 views
12

Flash Flexアプリケーション内のさまざまなソースからHTML形式のコンテンツを表示したい。 FlashはテキストフィールドでHTML書式設定をサポートしていますが、Webブラウザに比べて非常に制限されています。一般的なHTML形式のテキストをFlashが処理できる形式に変換するスクリプトはありますか?私の特定のユースケースは、次のとおりに、他のソースからコピー&ペーストランダムHTMLコンテンツを表示する(サーバー上のRTF2HTML変換を実行した後)のフラッシュ内部のRTFファイルを表示するフラッシュ Flashで表示するHTML形式のコンテンツをクリーンアップしますか?

  • 内部のHTML形式の電子メール
  • を表示

    • Flash

    クライアントまたはサーバーのいずれかで実行するコードは公開されていますが、おそらくサーバーが優先されます。

  • +0

    幾分興味深い質問ビットマップデータとしてプレレンダリングされたデータを返信する信頼できるサーバー側のHTMLレンダリングエンジンがあれば私は興味があります(これを行うオーバーヘッドがばかげているかもしれません) 。代わりに、クライアントサイドでStageWebViewをチェックアウトhttp://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/media/StageWebView.html – shaunhusain

    +0

    実際に私はあなたがウェブキットをつかんでそれにフックできるかどうか疑問に思いますHTMLサーバーの側をレンダリングして、レンダリングされたバージョン(jpgなどでエンコードされたもの)を何らかの形でクライアントに送り返します。または誰かが既にこれをしている場合。 – shaunhusain

    +0

    @shaunhusainはい、Webページをサーバー上のビットマップとしてレンダリングし、それを送り返すプロジェクトがいくつかあります。自分のAPIに呼び出すWebサービスと、自分のサーバーで実行するコードのどちらかを選択できます。いくつかのリンク:http://url2png.com http://webthumb.bluga.net/home http://www.thumbalizr.com/ http://www.boutell.com/webthumb/ http:// khtml2png。 sourceforge.net/ – davr

    答えて

    5

    サポートされているHTMLタグのサブセットが非常に悪く、永遠に変更されていない。

    <a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u> 
    

    このことは、完全に意図されたようにかかわらず、変換品質の、HTMLをレンダリングすることができないことです。サポートされていないタグをより基本的なタグに置き換えると、CSSのスタイリングのかなりの部分を放棄することもできます。

    http://simplehtmldom.sourceforge.net/(PHP)はいくつかの調整を行うことができますし、無効なマークアップにも対処する能力があります(さまざまなソースからコンテンツを処理した方法を見ると、長期的には多くの痛み) - 段落に

    <h1>,...,<h6> => <b> 
    <strong>  => <b> 
    <em>   => <i> 
    

    と平文それの残りの部分を交換するよりも、皆さんはそれはまだだろうか読みに驚くことでしょう。あなたはよ -

    <h1> => <b class="header1"> 
    

    をして(フラッシュCSSサポートはかなりあまりにも限られているが)のような適切な私は砂漠のためにこれを保存してきた

    をいくつかのCSSを追加します:あなたはとても似すぎて少し派手かもしれませんそれを愛しても嫌いだが、それはそのトリックを行うだろう。あなたのアプリがブラウザ内に配備されていると仮定すると(そうでないと私はあなたを誤読し、恥ずかしさを取り除き、ここで読むのを止める)iframeを使ってhtmlを真剣に表示することができます。

    JS < - > AS通信はかなり簡単で、アプリケーションの所定の領域に配置して、それがその一部であるという錯覚を与えることができます。 Flashオブジェクト/埋め込みにwindowmodeを設定して、他のページ要素の上にレンダリングしないようにしてからiframe z-indexを増やしてください。

    これは「醜い」アプローチと見なされても驚くことはありませんが、内部は美しいです。あなたは逐語的なHTMLと実際のCSSサポートに終わります。ユーザーとのやりとりに関しては、iframe内のリンクのクリックなどをインターセプトして、ムービークリップからアクションをリクエストすることもできます。

    +1

    回答にはかなりの点があります。特に、特定の領域にHTMLオーバーレイがある部分は、Flash独自のhtmlレンダリングのすべての欠点に対処するもっともらしい方法かもしれません。どのようにテーブルやフォームをフラッシュhtmlサブセットに変換しますか? - 私はちょうどフラッシュ自身のHTMLレンダリングを介して動作して表示されません。 – kontur

    1

    AS3 HTML Parser Library私はそれがHTMLを変換せず、代わりにFlash内でレンダリングするので、編集可能ではないという意味です。しかし、テキストを表示したり編集したりしたくない場合があると便利な場合もあります。

    もう1つの選択肢は、表示したいと思ういくつかのサンプルHTMLを見てから、正規表現を書いてFlash/TLFが期待するフォーマットに変換することです。しかし、そこには広範囲のHTMLがあるので、それは巨大な努力であるかもしれないと思う。

    +0

    わかりません。あなたの目標がHTMLコンテンツを表示するだけの場合、あなたがリンクしているライブラリはちょうどそれをするようです。 –

    2

    HTMLPurifierを使用して、サポートしたいタグのホワイトリストを指定することができます。

    関連する問題