1

私がやりたいこと:Flash Varを取得し、flashVarをClipBoardに設定します。
HTML:

<embed src="setClip.swf" FlashVars="res=123" quality="high" TYPE="application/x-shockwave-flash">

アクションスクリプト(3):

function loaderComplete(myEvent:Event)
{
   this.flashVars=this.loaderInfo.parameters;
   this.flashVarsLoaded=true;
   this.useFlashVars();
}
function useFlashVars()
{
        aaa.text = myFlashVars.res;
}
var myFlashVars=new Object();
myFlashVars.flashVarsLoaded=false;
myFlashVars.loaderComplete=loaderComplete;
myFlashVars.useFlashVars=useFlashVars;
this.loaderInfo.addEventListener(Event.COMPLETE, myFlashVars.loaderComplete);

HTMLページを開くと、「aaa」入力にテキストがありません。flash varを取得して、クリップボード(as1、as2、as3)に挿入する
ため の最良の方法は何ですか(良い例が必要です)。

4

1 に答える 1

1

flashvarsのロードを待って、Event.COMPLETEを使用する必要はありません。Flashvarsは、プレーヤーが起動したときにメインクラスのloaderInfo.parametersに配置されます。trace (this.loaderInfo.parameters["res"])メインクラスでトレースしてみてください。

1新しいflaファイルを作成し、保存します

2ステージテキストフィールドに追加(動的)、インスタンス名を設定ft1

3プロパティパネルのメインステージをクリックし、クラスタイプmain

4 main.asflaを使用してdirで作成します(ステップ1)

5メインとして:

package  {

    import flash.display.MovieClip;
    public class main extends MovieClip {
        public function main() {
            tf1.text = this.loaderInfo.parameters["foo"];
        }
    }
}

6ファイル->公開

7 dirに移動し(ステップ1)、. htmlファイルを開き <param name="flashvars" value="foo=10" /> 、paramsに行を追加します(2回)

8ブラウザでHTMLを開き、お楽しみください

(注:Adobe Flash IDE環境ではflashvarsをテストできません。実際のブラウザーでは、olnyです)

クリップボードについて:http: //help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/System.html#setClipboard() This method works from any security context when called as a result of a user event (such as a keyboard or input device event handler).

9ステージにボタンを追加し、名前を付けますbtn

10 main.as:

package  {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.system.System;

    public class main extends MovieClip {
        public function main() {
            tf1.text = loaderInfo.parameters["foo"];
            btn.addEventListener(MouseEvent.CLICK, onClickHandler);
        }

        private function onClickHandler(e:MouseEvent):void {
            System.setClipboard(loaderInfo.parameters["foo"]);
        }
    }
}

11 .flaをコンパイルし、ブラウザでHTMLを開き、btnをクリックし、クリップボードを確認します

申し訳ありませんが、ユーザーの操作なしにクリップボードを「自動的に」埋める方法はありません。覚えておいてください:クリップボードの読み取りと書き込みは大きなセキュリティホールです。

于 2013-03-21T17:34:21.947 に答える