- 締切済み
ActionScript 3.0について質問です(T T)
ActionScript 3.0でLocalConnectionを使い、同じHP内に二つの独立したFlashコンテンツを配置し、複数のボタンのみで出来ている送信側Flashと押されたボタンに応じて表示するムービーを読み込み、画面を切り替える役割の受信側Flashを作成したいと思っています。 しかし、ここでどうやってボタンの情報を受信側に送れば良いのかが 分かりません。 どなたかご存知の方、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
ファイル構造が次のようになっているとします。 任意のフォルダ ├sousin.swf (送信側Flash) ├jyusin.swf (受信側Flash) ├a.jpg (受信側Flash にロードされる画像) ├b.jpg (受信側Flash にロードされる画像) └c.jpg (受信側Flash にロードされる画像) sousin.swf (送信側Flash) 内の階層構造が次のようになっているとします メインのタイムライン ├a_btn (受信側Flash に a.jpg をロードさせるボタン) ├b_btn (受信側Flash に b.jpg をロードさせるボタン) └c_btn (受信側Flash に c.jpg をロードさせるボタン) この場合, 各 Flash のスクリプトを次のようにすればできます。 送信側Flash「sousin.swf」 フレーム1 のスクリプト --------------------------------------------------- // LocalConnectionインスタンス「sousinLC」を作成 var sousinLC:LocalConnection = new LocalConnection(); // ボタン「a_btn」クリック時に 関数 aClick を実行 a_btn.addEventListener(MouseEvent.CLICK,aClick); // カスタム関数 aClick を定義(引数evt:マウスイベント):戻り値なし function aClick(evt:MouseEvent):void { // データ送信 ("接続名", "関数名", "引数(ファイル名)") sousinLC.send("myLC","loadFile","a.jpg"); } // ボタン「b_btn」クリック時に 関数 bClick を実行 b_btn.addEventListener(MouseEvent.CLICK,bClick); // カスタム関数 bClick を定義(引数evt:マウスイベント):戻り値なし function bClick(evt:MouseEvent):void { // データ送信 ("接続名", "関数名", "引数(ファイル名)") sousinLC.send("myLC","loadFile","b.jpg"); } // ボタン「c_btn」クリック時に 関数 cClick を実行 c_btn.addEventListener(MouseEvent.CLICK,cClick); // カスタム関数 cClick を定義(引数evt:マウスイベント):戻り値なし function cClick(evt:MouseEvent):void { // データ送信 ("接続名", "関数名", "引数(ファイル名)") sousinLC.send("myLC","loadFile","c.jpg"); } --------------------------------------------------- 受信側Flash「jyusin.swf」 フレーム1 のスクリプト --------------------------------------------------- // LocalConnectionインスタンス「jyusinLC」を作成 var jyusinLC:LocalConnection = new LocalConnection(); // データを受け取るメソッドを持つインスタンスを指定 jyusinLC.client=this; // 接続名を指定 jyusinLC.connect("myLC"); // Loaderインスタンス「myLD」を作成 var myLD:Loader = new Loader(); // 「myLD」をステージに配置 addChild(myLD); // カスタム関数 loadFile を定義(引数file:文字列):戻り値なし function loadFile(file:String):void { // 念のため 「myLD」 にロードしたものをアンロード myLD.unload(); // URLRequestインスタンス「myURL」を作成(引数file) var myURL:URLRequest=new URLRequest(file); // 「myLD」 に file をロード myLD.load(myURL); } --------------------------------------------------- ロードするファイルを JPEG で説明しましたが,SWF でも同じです。
お礼
回答ありがとうございます!! おかげさまで問題が解決しました m(_ _)m かなり、色々なサイトを回って探したり、試してみたりしたのですが なかなかうまく出来なく途方に暮れていたのでとても助かりました。 また機会がありましたら、是非よろしくお願いします。