我的主类被添加到我的.fla阶段,我想在完成动画时删除并重新添加/“重启”该类。我的所有动画都发生在Main中,并被添加到Main内的显示树中。如何在Main.as中运行finishNow()
函数?
.fla文件:
var run:Main = new Main(this);
stage.addChild(run);
function finishNow() {
stage.removeChild(run);
var run:Main = new Main(this);
stage.addChild(run);
}
Main.as文件:
var stageHolder:Object;
public function Main(stageHolderTemp) {
stageHolder = stageHolderTemp;
trace(stageHolder);
}
function callFinishFunction():void {
// how to call finishNow() function from .fla file here
}
编辑:该计划的设计已经改变。仍在尝试做同样的事情(调用finishNow()函数 - 但它现在在Program.as中)。一切正常,除了引发program.finishNow();
的错误:
TypeError:错误#1009:无法访问空对象引用的属性或方法。
.fla文件:
它现在不包含任何代码。它与Program.as相关联。
Program.as文件:
package {
import flash.display.MovieClip;
public class Program extends MovieClip {
public function Program() {
startNow();
}
function startNow() {
var run:Main = new Main(this);
addChild(run);
}
function finishNow() {
removeChild(run);
var run:Main = new Main(this);
addChild(run);
}
}
}
Main.as文件:
package {
import flash.display.Sprite;
public class Main extends Sprite
{
var stageHolder:Object;
public var program:Program;
public function Main(stageHolderTemp) {
stageHolder = stageHolderTemp;
trace(stageHolder);
someFunctionsThatDrawGraphics();
}
function callFinishFunction():void {
// how to call finishNow() function from Program.as file here?
program.finishNow();
}
}
}
答案 0 :(得分:0)
如果你的.fla链接到Main.as文件,你可以直接调用。试试这个:
public function Main() {
finishNow();
}
.fla code
function testFunction()
{
trace("111");
}
.as file
package {
import flash.display.MovieClip;
public class Main extends MovieClip {
public function Main() {
testFunction();
}
}
}
答案 1 :(得分:0)
您可以致电addframeScript
来调用FLA功能。
答案 2 :(得分:0)
实际上,不需要每次都创建类对象。每次调用该类中的函数就足够了。
但是对于你的问题...... 试试这个....
在program.as
中 var run:Main = new Main(this);
run.addEventListener("FINISH",finishNow);
addChild(run);
function finishNow(e:Event)
{
}
在main.as中,
function callFinishFunction():void
{
dispatchEvent(new Event("FINISH"));
}