- ベストアンサー
FLEX SDK+MXMLで外部HTMLの読み込み、同一ページで表示
こんにちは。 FLEX SDK(3.0)+MXMLで、 外部HTMLを読み込み、同一 ページ内(特定のPanel,Canvas) に表示 することは、可能でしょうか。 navigateToURLという関数はありますが、 これは、次ページの読み替え、や、 新たなページ、インナーフレームを 開くのでやりたいこととは、異なります。 特定のPanelやCanvasに 読みたいと思っています。 これはAJAXでは、当然できていたこと (mypanel.load(url)などで できました) なので、FLEXでもできるのでは、 と思ったのですが、情報が ありません。 昔のFLASHのようにテキストデータを 読み込んで表示するとかしか、 方法がないのでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> これはAJAXでは、当然できていたこと よくわかりませんが, それは AJAX でできていたのではなくて, ブラウザがHTMLを表示できていただけでしょう? ブラウザであれば何を使おうともHTMLを表示できます。 それがブラウザの本業ですから。 Flash はブラウザではないので,基本的にHTMLは表示できませんよ。 というか実際は表示できます。 こんな形では↓。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>○○</title> </head> <body> <p>□□</p> </body> </html> こういう形(このようなテキスト)でよければ,Flash で表示可能ですが, それをブラウザのように解釈して HTML として表示することはできません。 FlashPlayer はブラウザではありませんから。 仮にできたとしても, IE とも Netscape とも Opera とも FireFox とも Safari とも… 違う独特な形で表示されることは間違いありません。 それに HTML 内にJavaScriptを入れたものになったなど, 色々なものを入れた場合,FlashPlayer自体 が JavaScript なども実行させなければならなくなります。 それはセキュリティ面などでも無理でしょう。 また HTML の中に JPEG を表示させるまでは良いとしても, WMV とか RM とか MPEG とかを入れた場合, そこまで FlashPlayer がサポートしなければなりません。 どれだけ重い重いFlashPlayerになることか...。絶対無理ですね。 求めるものには限りがありません。 したがって, FlashPlayer は基本的に HTML を HTML としては解釈しない。 というスタイルで良いと思います。 そもそも Flash の中に何かを表示させるのに, 窮屈な "タグ" なんてものは必要ないのですし。 そもそも HTML が窮屈であるから Flash を使うのでしょう? 窮屈な HTML で良ければ Flash は必要ないかと。 以上のように書きましたが, Flash エリア内に穴を開けて, その穴に HTML を表示できれば良いなあと私も考えたことはあります。 エリアはFlash内なんだけど,実は外(中庭)みたいな感じ。 これだと, FlashPlayer が ブラウザの全機能とブラウザの持つプラグインを持つ必要がなくなります。 でも,それはHTMLの都合上(そういうタグがない)ので無理なのでしょうね。 (HTMLにレイヤーを作って Flash の上に CSS で表示させるとできるかも...(できないかも...)) テキストフィールド内の文字のレイアウトをするときに, 装飾程度でしたら,かなり限られたものですが,少しだけタグが使えます。 HTML のテキスト整形を使用する(Flash CS3 Professional) http://support.adobe.co.jp/faq/faq/qadoc.sv?231815+002+3 この辺が限度です。 決してHTMLを表示しているわけではありません。 文字の装飾や少しの画像の表示にタグが使えるだけです。
その他の回答 (1)
AIRアプリケーションを作るなら。 HTMLLoader使えば、HTMLの読込み・表示はできます。 AIRはMacのSafariなどで使われている、 WebKitという描画エンジンを持っています。 そのため、普通に外部のWEBサイトをAIR内で表示することはできます。 http://livedocs.adobe.com/flex/3_jp/langref/index.html?flash/html/HTMLLoader.html&flash/html/class-list.html Flashの代わりにSWF出力するだけなら、無理でしょう。
お礼
回答ありがとうございます。 AIRアプリでなくても、 簡単なHTMLなら画像も含めて、 HTTPServiceオブジェクト (+htmlText)で 可能なことが分かりました。 スタイルシート等は解析できませんが、 古いタイプのHTML文書なら、 表示できるようです。
お礼
回答ありがとうございました。 せめて、同じディレクトリにある、 HTMLでも読み込めたら、 便利と思っていましたが、 無理みたいです。 (確かにブラウザになってしまいますし)。 それでも、一応あきらめはつきました、 タイトルとか、メニューの一部で 使いたいと思います。