0

クラス ファイルから FLA のメイン タイムラインで関数をトリガーしようとしています。私は通常、フォーラムの投稿をふるいにかけて解決策を見つけることができますが、私が見ているものはすべて役に立ちません。

私が今持っているコードはheresですが、動作していないようです。

//this is the code in my as3 class file
var e:Event = new Event("runFunc",true)                  dispatchEvent(e)

//here is the code in my .fla       
addEventListener("runFunc", initialization);

FLA でコードを使用するのは汚いコーディング方法であることは知っていますが、以前に作成した既存のゲームに追加しようとしています。

4

2 に答える 2

0

簡単な解決策は、この方法でタイムラインからコードを移行することです..

// class file
public function Main() {
    //constructor
    this.addFrameScript(1, frameOneFunc);
    initialization();
}
private function frameOneFunc(){
    This is essentially code in timeline for frame one.
}
于 2012-12-07T01:43:56.050 に答える
0

私はあなたに満足していません.flaから私のコードを切り取って、クラスファイルのframeOneFuncに貼り付けろと言っていますか?

これは、オフにするためのもう少しのコードです。

.fla コード (実行しようとしている関数)

function initialization();
{
    //random code...
}

私のクラスファイルのコード

public function frame1()
{
    this.savedstuff = SharedObject.getLocal("myStuff");
    this.btnSave.addEventListener(MouseEvent.CLICK, this.SaveData);
    this.btnLoad.addEventListener(MouseEvent.CLICK, this.LoadData);
    if (this.savedstuff.size > 0)
    {
//trying to trigger function here...this is my failed code below
            //MovieClip(parent).initialization();
            //var e:Event = new Event("runFunc",true)
             //dispatchEvent(e)
            //dispatchEvent(new Event("initialization"));
            this.nameField.y = 800

            this.note.y = 800

            this.btnSave.y = 800

            this.btnLoad.y = 800
            this.tigger.y = 0;

            trace(this.savedstuff.data.username);
        this.nameField.text = this.savedstuff.data.username;
        this.note.gotoAndStop(4);
    }
    return;
}
于 2012-12-07T19:29:26.250 に答える