• ベストアンサー

SWFからHTML読みこみ

昔似たような質問を投降しましたが、 当方の環境が変わったので改めて質問させて下さい。 環境は以下の通りです。 Windows XP Flash 8 Professional 具体的には SWFからHTMLを読み込む方法 (loadswfの様な関数が知りたい/FLASH8レベルまでの) バージョンによって出来る事、出来ない事が知りたい (HTML読みこみ面に置いて) 補足要求ありましたらお願いします。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#2です。 >>LoadVars.onData = function(引数){}; >これなんですが、 >読み込まれる側(HTML)で変数を宣言する >必要がなくなって便利と言う事ででしょうか? そうですね。 実用的な物の例では,csvファイルをFlash内にロードするときとかに便利です。 例↓ http://blog.livedoor.jp/unahide/archives/51412345.html csvも単なる文字列としてしか扱われませんが, データ形式が決まり切っているので, Flash内で「改行で split()」,「カンマで split()」 などのようにすれば, csv中の各要素データを取り出したりすることができます。 その他も考えれば色々応用が利くのではないかと思います。 とにかく何にしてもロードするだけなので, その後の処理は自作しなければなりませんけどね。

popepon
質問者

お礼

有難うございます。 これは便利ですね、 これから使っていこうと思います。

その他の回答 (2)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

昔(と言ってもFlash MX 2004)もFlash 8 も変わりませんよ。 場合によっては Flash 4 (1999年)とも変わりがありません。 > SWFからHTMLを読み込む方法 これは,Flash 4 から使用できる loadVariables(); loadMovieNum(); 関数  ※実際は Load Variables ("URL", "MC")         Load Variables ("URL", レベル) また Flash 5 から使用できる MovieClip.loadVariables メソッド でも可能です。 HTML と言っても単なるテキストデータですから, "ロードまでを考えるだけ" なら, テキストをロードできるようになった最初のバージョンから可能だったということです。 ただ本当の HTML の場合は 「変数=値」 というデータ形式になっていませんから, Flash4 でも Flash5 でもそれを取りだすことが容易ではありません。 Flash 5 の場合は, ムービークリップにテキストをロードして, onClipEvent(data) のタイミングで for..inを回せば, なんとか 「変数=値」 というデータ形式になっていない単なるデータも取りだせます。 しかし実用的ではありません。 あと取りだせても, タグ や onClick や href そのものも全て単なるテキストですから, そのタグの意味通りに表示したり機能させたりということはできません。 これまたまったく実用的ではないということになります。 ------ Flash MX になりますと, LoadVarsクラス(LoadVarsオブジェクト)が登場しましたから, このクラスのインスタンスを作成し(LV = new LoadVars();), そのインスタンスにテキスト(HTML)をロードし, LoadVars.onData = function(引数){}; で何かを実行させると, この 引数 にロードしたデータが入るようになりましたから, 取りだしがすごく楽になりましたし,これは実用の範囲だと思います。 しかし, 結局HTMLを取りだせても Flash 5 と同じです。 タグ や onClick や href そのものも全て単なるテキストですから, そのままでは言語としては動作しません。 しかし Flash MX では, テキストフィールドがインスタンスとして, つまり独立したオブジェクトとして扱えるようになりました。 これと同時に「テキストをHTMLとしてレンダリング」する機能も付きました。 でも, この「テキストをHTMLとしてレンダリング」は, 簡単なタグ(<br> とか <p> とか <b> とか)が認識されるだけで, テキストフィールド内のレイアウトや文字の色や太さを変えられるという, ほんの軽いテキストの装飾の意味しか持っていません。 普通の HTML を表示するような代物ではないということです。 ------ Flash MX 2004 になりますと, 「テキストをHTMLとしてレンダリング」したときに, <img> タグが使用可能になりました。 つまり, loadMovie や MovieClipLaderクラスのメソッドを使用しなくても, テキストフィールドの中に外部JPEGが表示できるようになったということです。 しかし, 実際に使ってみると惨々で, テキストと画像をうまく組み合わせてレイアウトすることはほとんどできません。 結局 Flash MX と同じで, 「テキストをHTMLとしてレンダリング」を使っても, 簡単なタグが認識されるだけで, 普通の HTML を表示するような代物ではないということです。 ------ Flash 8 になっても全く Flash MX 2004 と変わらないでしょう。 詳しくは Flash8 のヘルプ  ActionScript 2.0 の学習    >テキストとストリングの操作     > HTML 形式のテキストの使用 辺りを参考にしてみてください。 HTML 形式のテキストの使用 http://livedocs.adobe.com/flash/8_jp/main/00001457.html ==================== 結局ですね。 HTML のロードは昔から簡単にできるのです。 しかし, その言語を Flash が ブラウザのように扱わないわけです。 FlashPlayer はブラウザではないので当然のことですけどね。 HTMLって結構危険な動作につながることもしますし, その中で JavaScript や CSS が働いて, ちゃんとした表示がされる場合が多いです。 そんな機能を FlashPlayer に持たせることがおかしいですよね。 IE や NN や Opera や Firefox の機能を FlashPlayer に持たせるということになるのです。 それは危険ですし,FlashPlayer ももっと重い物になってしまいます。 というわけで, そっち方向にはひとつも進化していませんよ。 将来的にもおそらく進化しないでしょう。 仮に(あくまでも仮にです), すごい未来にHTMLが表示できるようになったとしても, ブラウザによってHTMLの表示が異なるように, それ以上に他のブラウザとは違った表示になることは間違いないでしょう。 ------ 大きく考えると, HTML は少しだけ動作が機能する不自由なテキストや画像装飾レイアウト言語です。 また環境によって表示のされかたはかなり変わります。 それに比べると, Flash はかなり多用な動作機能をし,かなり自由なテキストや画像やムービー装飾レイアウトなどができるコンテンツです。 また同じバージョンの FlashPlayer を持っていれば環境の影響をほとんど受けません。 (CPU と 回線速度 の影響は受けますが...。) ですから, HTMLのような不自由で不安定なものをFlash内に持ちこむという発想より, 元から装飾などを持たないXMLデータをFlash内にロードして, XMLデータを Flash 内で装飾レイアウトした表示にするという方向の方が良いですし, 実際にそのようなものは多いです。 ※例えば Blog のようなもので   HTML ではなく XML(RSS)を吐き出させて,   その XML をFlashで料理するというようなことです。 これは XMLクラスを使えば,データのロードもデータの操作もできます。 そちら方面で考えるのが普通ですし良いと思います。 口下手な私が長々と書くより, 他のコミュニティですが, こちらの方↓の回答の方が端的で良いかもしれません(端的2行)。 「GAC [21560] ムービークリップにhtmlを表示させたい。」 http://www.gac.jp/article/index.php?stats=question&category=19&id=21560&command=msg

popepon
質問者

お礼

ご解答有難うございます。 バージョン毎のご説明で理解しやすかったです。 >LoadVars.onData = function(引数){}; これなんですが、 読み込まれる側(HTML)で変数を宣言する 必要がなくなって便利と言う事ででしょうか? >実際に使ってみると惨々で, >テキストと画像をうまく組み合わせてレイアウトすることはほとんどできません。 ついさっき実感させられました <img>タグ使用出来る様になったとは薄々気づいていたのですが、 まさかそれだけとは思わず残念でなりません。 XMLの件ですが、ちょっと気になっていたのもあったので 検討してみたいと思います。

  • EE_88mm
  • ベストアンサー率50% (11/22)
回答No.1

「SWFからHTMLを読み込む方法」とは、SWF内に外部HTMLを読み込んでレンダリング表示する、と言うことでしょうか? だとすると、無理だったはずです。 HTMLを文字列として取り込むことはできたと思いますが…。

popepon
質問者

お礼

ご解答有難うございます。

関連するQ&A