0

我正在尝试从类文件中触发我的 FLA 中主时间轴上的一个函数。我通常可以通过论坛帖子找到解决方案,但我看到的所有帖子都没有帮助。

这是我现在拥有的代码,但它似乎不起作用。

//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 回答