我试图从类文件中触发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中使用代码是一种肮脏的编码方法,但我正在尝试添加到我之前构建的预先存在的游戏中。
答案 0 :(得分:0)
一个简单的解决方案是使用此方法将代码移出时间轴。
// class file
public function Main() {
//constructor
this.addFrameScript(1, frameOneFunc);
initialization();
}
private function frameOneFunc(){
This is essentially code in timeline for frame one.
}
答案 1 :(得分: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;
}