• 締切済み

flash AS3で困って質問させていただきます。

Tanigucchiの回答

回答No.1

swfとhtmとの通信が遮断されている可能性がありますので HTML側で以下3点をご確認ください。 1. objectタグとembedタグのallowScriptAccessパラメータはalways 外部と遣り取りが遮断されないようにします。 http://www.adobe.com/jp/devnet/flash/articles/external_interface_02.html 2. AC_RunActiveContentに関する記述は削除 FLASHで生成されるHtmlではIE対応でこの記述があるようですが これがエラーの原因となる場合があるようです。 3. グローバルセキュリティ設定で対象コンテンツを常に許可 許可されないコンテンツは外部と通信が出来ません。 http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html

mimi_kawa
質問者

お礼

度重なるお返事で申し訳ございません。 html記述内のflash配置スクリプト部が<noscript></noscript>で囲まれているのに気づき、削除した結果、変数を返してくれるようになりました! Tanigucchi様にヒントをいただけたことで前に進む事ができました。 本当にどうもありがとうございました。。 昨日からずっと悩んでいて、結果コチラに質問させていただいた結果、本当に助かりました。。 本当にどうもありがとうございます。。

mimi_kawa
質問者

補足

礼 お返事ありがとうございます。 ご指摘いただいた箇所、サイトを拝見し、 1で指摘いただいた箇所が"sameDomain"となっていて外部とのやり取りができるよう"always"に変更をかけてみました。 また、2でご指摘いただいた箇所 html内の記述でパブリッシュで生成された <script language="javascript">AC_FL_RunContent = 0;</script> <script src="AC_RunActiveContent.js" language="javascript"></script> </head> <body bgcolor="#993366"> <!--ムービーで使用されている URL--> <!--ムービーで使用されているテキスト--> <!-- saved from url=(0013)about:internet --> <script language="javascript"> if (AC_FL_RunContent == 0) { alert("このページでは \"AC_RunActiveContent.js\" が必要です。"); } else { AC_FL_RunContent( 'codebase', '​http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab...​ 'width', '550', 'height', '400', 'src', 'test', 'quality', 'high', 'pluginspage', '​http://www.macromedia.com/go/getflashplayer',​ 'align', 'middle', 'play', 'true', 'loop', 'true', 'scale', 'showall', 'wmode', 'window', 'devicefont', 'false', 'id', 'test', 'bgcolor', '#993366', 'name', 'test', 'menu', 'true', 'allowFullScreen', 'false', 'allowScriptAccess','sameDomain', 'movie', 'test', 'salign', '' ); //end AC code } </script> を削除して確認をしてみたのですが、やはり動いてくれませんでした。。 3に関しては許可をしているのですが私の構文に問題があるのでしょうか?

関連するQ&A

  • ActionScript3.0についての質問です。

    ActionScript3.0についての質問です。 ムービークリップAの中に入れ子でムービークリップBを作成し、またその中に入れ子でムービークリップCを作成しました。 そしてこのムービークリップCをクリックできるようにしたいのですがうまくいかないんです。 こんなふうに書いてみたのですがどこが間違っているのか指摘してもらえると嬉しいです。 package{ import flash.display.MovieClip; import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; public class komorebi extends MovieClip{ public function komorebi(){ A.B.C.addEventListener(MouseEvent.CLICK, clickHandler); } function clickHandler(ev:Event){ signBoard.gotoAndPlay("parkUp"); } } } >A.B.C.addEventListener(MouseEvent.CLICK, clickHandler); これがちょっと怪しい気がするのですが、A.B.C ←こういった参照のしかたでよろしいんでしょうか? もし説明不足でしたらまた追記しますので言ってください! すみませんがよろしくお願いします!!

    • ベストアンサー
    • Flash
  • ActionScript3.0について質問です。

    ActionScript3.0について質問です。 ムービークリップ(town1)の中にムービークリップ(park)を作成して、その入れ子にしたムービークリップをマウスオーバーしたときにストップをかけたいのですが反応しません。 下のように、parkをクリックしたときにtown1を停止させたく書いてみたのですが、どこが間違っているのか分からずどなたかお力を貸してください! package{ import flash.display.MovieClip; import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; public class komoTown extends Sprite{ public function komoTown(){ town1.park.addEventListener(MouseEvent.MOUSE_OVER,rolloverHandler); } function rolloverHandler(event):void{ town1.stop(); } } } 分かりづらい説明ですみません! よろしくお願いします!!

    • ベストアンサー
    • Flash
  • FlashとJavaScriptの連携 (ExternalInterface)

    初心者です。初めて質問いたします。 調べてやってみたのですが、上手くいかず、ご教授願えませんか? FlashのボタンからFlashに重ねたインラインフレームを制御しようとしてます。 その際に使いたいJavaScriptが・・・ function switchContent(id){ var view = $("main"); var tgt=$("main-win"); switch (id){ case "test1": view.style.visibility = "hidden"; tgt.src=""; break; case "test2": resizeMain(); view.style.visibility = "visible"; tgt.src="http://www.google.co.jp/"; break; } } というものです。main-winがインラインフレームで、その下に配置しているmainを表示、非表示と制御したいと考えております。 FlashのほうのASは・・・ import flash.external.*; Button.onRelease = function() { ExternalInterface.call("関数名", 引数); }; と調べやってみましたが、上手くいきません。 Flashのほうに問題があると思うのですが 何卒よろしくお願いします。

  • Flashで出来ること2

    ActionScriptについての質問です。 今、ActionScript3.0を勉強中です。 全面Flashを作っていますが、ボタンをクリックしたときにメールソフトへジャンプする方法がいまいち分かりません。 自己流でURLリンクを真似て //イベントリスナーの登録 question.addEventListener(MouseEvent.CLICK,gotoURL2); //URL2へジャンプする function gotoURL2(event:MouseEvent):void{ var theURL2= new URLRequest("mailto:*********@yahoo.co.jp"); navigateToURL(theURL2,"_blank"); } という風にしてみたのですが、クリックするとメールソフトのほかに新しいウインドウがメールアドレスをURLと置き換えて開かれてしまいます。 この場合いったいどうするとメールソフトのみが開かれるのでしょうか??

  • ASファイルについて

    関数などをまとめてasファイルにして読み込みたいとかんがえているのですが、可能なのでしょうか? たとえば レイヤー2にあるボタンオブジェクト"btn"をクリックすると レイヤー1で#include "function.as"としたなかの function hoge() { gotoAndStop(5); } とうい関数を実行したいっていうふうに考えいます。 btn.on(press) = hoge(); やってはみたのですが、Flash初心者でどうもうまくいきません。 どうかご教授ください。 よろしくお願いします。

  • マウスクリックで値を送る(AS3.0)

    Flash Pro CS5 AS3.0 で記述しています。 ステージにtest_txt1とtest_txt2を配置し, クリックされたらどちらも同じ関数(testFunc)を呼び出すようになっています。 コードは stop(); test_txt1.addEventListener(MouseEvent.CLICK, testFunc); test_txt2.addEventListener(MouseEvent.CLICK, testFunc); function testFunc(evt:MouseEvent):void{ trace("呼び出された"); } ここで、どちらのテキストをクリックして呼び出されたのかを判断できるようにしたいのですが どのように記述して関数に値を渡すのでしょうか? 試しに以下のように記述したのですができませんでした。 test_txt1.addEventListener(MouseEvent.CLICK, testFunc, 1); test_txt2.addEventListener(MouseEvent.CLICK, testFunc, 2); function testFunc(evt:MouseEvent, val:int):void{ trace("val"); } よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ボタンについて(CS4,AS3)

    HPのメニュー用に、クリックするとフレーム移動するボタンを作っています。 フレーム1以外のフレームには、フレーム1に設置してあるボタンで指定したフレームとは異なるフレームに 移動させたいので、新たにフレーム1のボタンとは別のボタンを設置しています。 プレビューでフレーム1のボタンをクリックすると正常に動くのですが、 フレームが移動した後に再度ボタンをクリックすると動かず、全てのボタンが反応しません。 ■フレーム1に設置してあるボタン test_a1.addEventListener(MouseEvent.CLICK , testA1); test_b1.addEventListener(MouseEvent.CLICK , testB1); test_c1.addEventListener(MouseEvent.CLICK , testC1); function testA1(event : MouseEvent) :void{ gotoAndPlay(1); } function testB1(event : MouseEvent) :void{ gotoAndPlay(51); } function testC1(event : MouseEvent) :void{ gotoAndPlay(101); } ※フレーム1、51、101にはstop();で停止するようにしています。 ■フレーム51に設置してあるボタン test_a2.addEventListener(MouseEvent.CLICK , testA2); test_b2.addEventListener(MouseEvent.CLICK , testB2); test_c2.addEventListener(MouseEvent.CLICK , testC2); function testA2(event : MouseEvent) :void{ gotoAndPlay(11); } function testB2(event : MouseEvent) :void{ gotoAndPlay(61); } function testC2(event : MouseEvent) :void{ gotoAndPlay(111); } コンパイルエラーは出ていません。 ネットで調べても何故、フレーム1以外のボタンが動かないのか分かりません。 どなた様か教えていただけると助かります。 使用しているソフトはAdobe Flash CS4で、スクリプトはActionScript3.0です。 よろしくお願いします。

  • FLASH/一定時間停止後、再生されるscript

    flash CS4/ActionScript3.0にてサイトローテーションバナーを制作しております。 ムービークリップ「btn1_mc」をクリックするとフラッグ「scene1」を再生し、 「btn1_mc」にポインタが乗った時は一定時間停止し、再生されるという動きを作りたいのですが、初心者のため、うまくActionScriptが書けません。 setTimeout関数を使えば良いということはわかったのですが… 下記コードに書き加え、実装する方法を教えていただければ助かります。 よろしくお願いします。 btn1_mc.addEventListener(MouseEvent.CLICK,btn1Click); btn1_mc.addEventListener(MouseEvent.ROLL_OVER,btn1Over); btn1_mc.addEventListener(MouseEvent.ROLL_OUT,btn1Out); btn1_mc.buttonMode=true; function btn1Click(evt:MouseEvent):void{ gotoAndPlay("scene1"); } function btn1Over(evt:MouseEvent):void{ gotoAndStop("scene1"); btn1_mc.gotoAndStop(2); } function btn1Out(evt:MouseEvent):void{ gotoAndPlay("60"); btn1_mc.gotoAndStop(1); }

  • ASファイルからのstage

    flashcs3 actionscript3.0で作成しています。 asファイル "Test.as" package { import flash.display.DisplayObjectContainer; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.*; public class Test extends Sprite { public function Test() { init(); } private function init() { for (var i:uint = 0; i<10; i++) { var sp:Sprite = new Sprite(); sp.graphics.beginFill(0x00CCFF); sp.graphics.drawRect(i*20,50,20,20); sp.graphics.endFill(); stage.addChild(sp); } } } } flash var hoge2 = new Test(); と書いてflash上のstage上にSpriteをaddChildしたいのですがstageをnullと解釈してしまいます。 この場合flash上のstageを参照するにはどうすれば良いのでしょうか?

    • ベストアンサー
    • Flash
  • クラスを定義したいのですが下記は同じ意味でしょうか

    JavaScriptで、クラス(のようなもの)を定義したいのですが、 下記は同じ意味でしょうか? ・var Hoge = function() {}; ・function Hoge() {}; 上は、Hogeクラスを定義したことになるのでしょうか? それとも単に無名クラス(?)を、変数へ格納しただけ?