0

重複の可能性:
JavaScript で Flash ExternalInterface を呼び出す

AS コードを含むフラッシュ ファイルがあります。AS の機能を実行する Javascript を実行したいと考えています。例: AS には、「loadXML」という関数があります。「pawel」という SWF ファイルを保持するオブジェクト (オブジェクトの ID)。「pawel」関数「loadXML」で実行されるJavascriptコードを実行するにはどうすればよいですか? AS 3 で Flash 6 を使用しています。

4

3 に答える 3

0

ここでの目標は、swf (外部の .as ファイルをコンパイルしたもの) に xml ファイルの場所をサーバー上のどこかに送信して、swf が何かをコンパイル、解析、および作成できるようにすることだと思います。

フラッシュ変数を使用してこれを何度も行ってきましたが、これはあなたにも役立つかもしれません。Web ページに .swf を埋め込む場合、js または html を介してフラッシュ変数を送信するか、php を使用して動的に送信できます。fla がハードコードされた変数 (xml など) で完全に機能するようになったら、フラッシュ変数コードをヘッドに追加し、fla にいくつかの小さな調整を加えます。これらの外部変数に依存するようになりました)

とにかく、これが私がフラッシュ変数を行う方法です(他の方法があります。Googleで検索する価値があります)

import flash.net.*;

var flashVars:Object = new Object();
flashVars = this.loaderInfo.parameters;
var xmlVal;

for (var item:String in flashVars)
{
    switch (item)
    {
        case "xmlLocation" :
            xmlVal = String(flashVars[item]);
            break;

    }

}

値を送信する JavaScript は次のとおりです。

<script type="text/javascript">

            //flashObj
            var flashvars = {};
                flashvars.xmlLocation = "http://google.com/myXML.xml";
            var params = {wmode:"transparent"};
            var attributes = {};
                swfobject.embedSWF("images/banner.swf", "yourSliderId", "175", "300", "9.0.0", false, flashvars, params, attributes);


        </script>

これは、swf 埋め込みを処理するために SWFObject (オープン API フラッシュ埋め込み js ライブラリ) を使用しています。上記のコードを見れば、それを読んで理解できるので、私はそれを好みます。デフォルトの方法は、読んだり、編集したり、理解したりするのが本当に難しいです。

単純に XML が必要で、完了している場合は、これで十分です。JavaScript を使用して「次へ」または「前へ」ボタンを押す必要がある場合は、この Web サイトの記事を参照して ください。 /javascript-in-love-with-flash-control-swf-from-javascript/

于 2012-09-05T13:07:55.293 に答える
0

これをチェックすることをお勧めしますhttp://www.redcodelabs.com/2012/04/calling-actionscript-method-from-javascript/サンプルと as3/js コードを実行しています。

于 2012-09-05T08:44:44.107 に答える
0

メソッドを使用する必要がありますExternalInterface.addCallback()。詳細については、 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#addCallback () を参照してください。

于 2012-09-05T06:59:15.007 に答える