• ベストアンサー

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

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

  • Flash
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
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

  • AS3.0による外部swfの制御

    AS3.0による外部swfの制御 質問させていただきます。 やりたいと事は、メインとなるswfのボタンを押して、 読み込んだ外部swf(stopしている)を再生(play)したいと考えております。 メインのswfはAS3.0、読み込む外部swfはAS2.0になります。 環境はFlash CS3です。 以下がスクリプトになります。 //swf読み込み配置 var loader_obj : Loader = new Loader(); var url : URLRequest = new URLRequest("test.swf"); MovieClip(root).loader_obj.load(url); loader_obj.y = 3 loader_obj.x = 392 stage.addChild(loader_obj); //swfボタン制御 btn.addEventListener(MouseEvent.ROLL_OVER,btn_play); function btn_play(event:MouseEvent):void {MovieClip(root).photo.gotoAndPlay(2);//メインswfのムービーリップも動かす <--ここに外部swfを参照するスクリプトが入ると思うのですが・・・-->gotoAndPlay(2);//外部swfの2フレーム目から再生 } 肝心の所のスクリプトはわかりません・・・ 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • addChildしたオブジェクトを完全に消したい。

    flash cs3 action script3.0 で制作しています。 papervision3Dで制作したswfを3つ同じフォルダ内に置いて ボタンを3つ作り function call(e:Event){ var loader_obj1 : Loader = new Loader(); loader_obj1.load(new URLRequest("hoge1~3.swf")); stage.addChildAt(loader_obj1,0); } で呼び込んでます。 この呼び出したswfを removeChild(hoge1~3.swf); で消したいのですが、姿は消えるんですが存在はしているらしく呼び出す度にどんどん重たくなっていきます。 この呼び出したswfを完全に消す方法はあるんでしょうか?

    • ベストアンサー
    • Flash
  • AS3での外部swfの制御

    こんにちは。 Flashのコードについて質問させていただきます。 AS3で外部swfを読み込み、制御したいのですが上手くいきません。 ここでいう外部swfはflashで作ったものではなく、aftereffectsでswfで書き出したものです。 var swf:MovieClip; var loader:Loader = new Loader(); var newSWFRequest:URLRequest = new URLRequest("swfs/" + "test" + ".swf"); loader.load(newSWFRequest); addChild(loader); 上記コードでswfを表示+再生は出来ます。 更に、swfを停止、再再生、逆再生などしたいのですが、可能でしょうか? そもそもこのswfにはタイムラインという概念が存在しないので微妙ですが。。。 swf = new MovieClip(); swf .stop(); とか書き足せば、 TypeError: Error #1034: 強制型変換に失敗しました。flash.display::AVM1Movie@231c04a1 を flash.display.MovieClip に変換できません。 が出ます。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • (AS3)外部swfを読み込んだが表示されない

    AS3で、以下のようなコードで外部SWFを呼び出して表示するというプログラムを組んでいるのですが、なぜか画面に表示されません。ContentTypeを調べたりなど色々やってみたところ、情報が取得できるのでなんらかの理由でステージに配置されていない、または配置されているが見えなくなっています。読み込むのを画像データにしてみるとうまくいきます。画像読み込みとSWF読み込みのコードって共通ですよね? package {  import flash.display.*;  import flash.net.*;   public class Main extends Sprite {    function Main():void {     var filename:String = "easy.swf";     var request:URLRequest = new URLRequest(filename);     var loader:Loader = new Loader();     loader.load(request);     addChild(loader);   }  } } 読み込むSWFのバージョンは9.0、このプログラムの書き出しも9.0で行っているのでバージョンの問題でも無いはずです。どなたかお分かりでしたら、どうかご教授お願い致します。

  • ASでの動画ファイルの読み込み

    こんにちは。 Flash ではアクションスクリプトを使って、LoadMovie で swf を読み込めるようですが、 同様にしてアクションスクリプトを用いて avi や mpg 動画ファイルの読み込みはできないのでしょうか? swf、サウンドの読み込みのようにパス指定ができればよいのですが。

    • ベストアンサー
    • Flash
  • フルFlash、swfファイルの読み込みについての考え方(as3.0)

    フルFlash、swfファイルの読み込みについての考え方(as3.0) こんにちは。 Flashのas3.0を始めて半年程度の者です。 長文ですが宜しくお願い致します。 下記のような構造のフルFLASHページを作りたいと考えております。 ■大まかな階層構造 ・index.html(opening.swfを100%で読み込む指定) ・opening.swf(最初に流れるアニメーション。最後のフレームに行くとmain.swfを読み込む指定) ・main.swf(フルFLASH) /// opening.swfの最終フレームに記述 /// stop(); var loader:Loader = new Loader(); var url : URLRequest = new URLRequest("main.swf"); loader.load(url); stage.addChild(loader); 上記の記述でmain.swfを読み込むことは出来るのですが、 アニメーションのopening.swfを非表示にする方法が分かりません。 loader.addEventListener(Event.UNLOAD,・・・); という記述でロードしたswfを非表示にする方法は分かるのですが、 opening.swfは直接index.htmlのタグに埋め込んでいる為、うまく機能しないのではと思っております。 ■私が思いついた対策 ・index.html(background.swfを100%で指定) ・background.swf(とりあえずhtmlに埋め込んでおくswf) ←コレを追加!! ・opening.swf(最初に流れるアニメーション。最後のフレームに行くとmain.swfを読み込む。) ・main.swf(フルFLASH) 上記の階層構造で、background.swfを常に背景感覚で表示させ、 opening.swfもmain.swfもloadで切り替えれば実現は出来るかと思います。 只、この方法が一般的に適切な方法なのかどうか疑問に思いました。 オープニングアニメーション ⇒ フルFLASHという流れをつくるには、どういう作り方が一般的なのでしょうか? 出来ればJSは絡ませず、htmlとflashの指定だけで完結出来ればと思っております。 考え方だけどもご教授頂ければ助かります。 何卒、宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • 外部swfファイルの読込み

    Flash Pro8を使用しています。 Flash全体が重くなるため、あるボタンを押したとき、 外部swfファイルを読み込みたいと思っているのですが、 記載するアクションスクリプトがわかりません。 どなたかご存知の方教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部swfからのタイムラインコントロール

    FLASH&アクションスクリプト初心者です。 同じ階層にindex.swfという名前とcontent.swfという名前でswfファイルを置いています。index.swfのボタンシンボルを押すとindex.swfのムービークリップ(loadいう名にしています)上にcontent.swfを読み込むようにしています。その読み込んだcontent.swfのあるボタンシンボルを押すとindex.swfのタイムラインを指定したラベル(moveという名にしています)に移動させたいのですが、方法がわかりません。ご教授いただけると幸いです。アクションスクリプトは2.0を使用しています。

    • ベストアンサー
    • Flash
  • Flash professional CS5を使っており,AS3.0で

    Flash professional CS5を使っており,AS3.0で記述しています。 外部swf(test.swf)をムービークリップ(my_mcとしました)に読み込むには どのようにコードを記述すればよいのでしょうか? MovieClipLoaderを使う物や var urlReq:URLRequest=new URLRequest("test.swf"); var swfLoader:Loader=new Loader(); swfLoader.load(urlReq); このようにロードする方法は見つかったのですが my_mc = loader.content as MovieClip; などとしても ムービークリップに読み込めません。 いろいろ試したのですが直接ステージに読み込まれて表示されたり,エラーも起こらず表示されなかったりします。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部swfをループ読み込みしたい

    たとえば3つのswfファイルがあって、 ファイル名を001.swf・002.swf・003.swfとします。 これらのswfファイルをTOP.swfにてループで再生したい場合、 どのようにしたらよいのでしょうか。 001→002→003→001→002→・・・・ といった感じです。 TOP.swfのみにアクションスクリプトを記述して実行したいのですが、、、。 FLASH CS3でアクションスクリプトは2.0を使用しています。

    • ベストアンサー
    • Flash