• ベストアンサー

.asファイルのみ外部から読み込む方法

フラッシュ暦1年未満であまり詳しくありません。 WEB制作は3年ほどです。 フラッシュのアクションスクリプト.asのみを.swfに読み込ませてWEBで閲覧できる方法があれば教えて下さい。 スクリプトに obj_as.load("######.as");と入れても無理でした。 結局なにをしたいのかと申しますと アクションスクリプトのみ外部から読み込むことができると、そのスクリプトの一部分のみクライアントで操作してもらい写真の枚数など指定できるようにしたいのです。たとえば・・・ var menu_num:Number = 9;←この部分にマクロを入れて自動更新します。。。。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.2

何か根本的に大きな間違いをされているのではないかと思いますよ。 asファイル のみを swf に読み込ませるのは簡単です。 書いていらっしゃるのに近い物では,  obj_as.loadVariables("######.as"); みたいなので実際に読み込まれるはずです。 読み込まれても表示するのは別問題です。 asファイルの内容はテキストデータで, 単なる文字データの "文字列" に過ぎません。 asファイルという物は, Flash で fla ファイルを as ファイルとともにコンパイル(パブリッシュ)すると, swfファイル内に動作するプログラミングデータとして実装されるのです。 asファイルに限らず, Flash のアクションパネルに書き込んでいるいわゆる ActionScript も, 人間が見たらすぐわかる用の,単なる文字列です。 単なる文字列を機械が認識するわけがありません。 実際はマシン語に近い物にコンパイルされて,動作するのです。 ActionScript → マシン語に近い物(Flash Playerが動作する実行文) という変換作業を,Flash のパブリッシュ時にしているのです。 当然,パブリッシュ後は ActionScript とかいう言語でも,英語でも日本語でもありません。 そんな人間の言葉が通じたらビックリします。 それに, そもそも asファイルが swf の中で実行出来たら, Flash なんてソフトは不要ですね。 HTML のように,スラスラとメモ帳で Flash が作れてしまいます。 > アクションスクリプトのみ外部から読み込むことができると、 > そのスクリプトの一部分のみクライアントで操作してもらい > 写真の枚数など指定できるようにしたいのです。 > たとえば・・・ > var menu_num:Number = 9;←この部分に > マクロを入れて自動更新します。。。。 なぜ,それだけのことをするのに, スクリプトのロードという奇妙なことをしなければならないのでしょうか? みなさんが普通にされているように,例えば, menu_num=9 というデータだけを,外部テキストファイルに用意しておいて, その myNumber=9 を使って動作を変えれば良いのではないですか。 //////////////////////////////////////////////////////////////////////////// ---例--- まず外部テキストファイル「test.txt」の内容↓。 ---------------------------- menu_num=9 ---------------------------- Flash で新規ドキュメントを作成して, フレーム1に書くスクリプト↓(コピペ可)。 ---------------------------- // LoadVarsクラスのインスタンス myLoadVars を作成 myLoadVars = new LoadVars(); //LoadVars.onLoadメソッドを定義 myLoadVars.onLoad = function(seikou) { // 読み込みに成功したら if (seikou) { // その値で何かを実行 getURL("http://oshiete1.goo.ne.jp/kotaeru.php3?q=2436"+this.menu_num+"81"); } }; // myLoadVars に 「test.txt」 を読み込む myLoadVars.load("test.txt"); --------------------------- ※コピペする場合は,  なるべく「教えて!goo」のスクリプトをコピーしてください。  http://oshiete1.goo.ne.jp/kotaeru.php3?q=2436981  OKWave系のものをコピーすると,  URLの前後に変な文字が入る場合があります。 ※参考URL  「LoadVarsオブジェクトを使った外部テキストファイルの読込み」  http://www.fumiononaka.com/TechNotes/Flash/FN0303007.html このスクリプトを書いた fla ファイルは, 「test.txt」 と同じフォルダに保存し, 「test.txt」 と同じフォルダに swf と html をパブリッシュして確認してみてください。 このような感じで, 外部テキストファイルからは値だけを取り出して, その値によって動作を変えれば良いだけではないでしょか。 上の通りにすると,瞬時に 「教えて!goo」のこのページが表示されると思います。 「test.txt」 の中のデータを, menu_num=8 などに変えると, 他の質問のページが表示されると思います。 //////////////////////////////////////////////////////////////////////////// 写真が入れ替えられたり, リンク先が変えられるような Flash(swfファイル) の素材屋さんを 気が向いたらいちど訪ねてみてください。 みんなこのような方式で, 読み込む写真の名前や枚数を変えているのがわかると思います。 Flash(swfファイル) の素材屋さんで配布しているのは swfファイルですから, スクリプト自体はどうなっていっるのかわかりませんよ。 でも,どうなっているのかは,実験&観察しているとわかります。 少なくとも素材を使ってくれる人に, asファイルを作成してもらうような,とんでもない素材屋さんはありません。 それは, asファイルは swf の外部に置いていてもプログラムとして動作しないという理由もありますが, その前にそもそもasファイルを作成できるような人であれば, 最初から swfの素材屋さんの素材なんか使いません。 また, asファイルを作成できるような人であっても, asファイルを作成させるような素材は非常に不親切です。 私なら(誰でも), URLならURLという値だけを変える。 枚数なら枚数という値だけを変える。 そういう素材でないと使いません。 外部テキストファイルを読み込むということは, 単に swfファイル内に文字を表示するためだけに使う場合もありますが, それだけではなく, 動的に動作を変えるために使うという場合も多々あります。 外部テキストファイルを読み込むには, 「loadVariables(); 関数」や「LoadVars クラスのメソッド」があったり, もっと複雑なデータを読み込む場合は, 「XMLクラスの loadメソッド」などを使います。 また, swfファイルから読みに行くのではなく, HTML から Flash Vars を使って 強制的に変数を値を swf に入れ込む方法を使う場合もありますし,  aaa.swf?q=2436981 という感じで,「aaa.swf」に q=2436981 という引数を渡す方法もあります。 という感じす。 とにかく,swfにasファイルを読み込むということは, Flash の機能についてや, 使う人の身になって考えることなどの意味において, 何か根本的に大きな間違いをされているのではないかと思いますので, その点再検討してみてください。

その他の回答 (1)

回答No.1

外部asは、flaからのパブリッシュ時にしか読み込むことはなく、書き出した後のswfの内容に影響させることは出来ないです。  目的からすると、多分XMLを使うことになるんじゃないでしょうか?

関連するQ&A