0

我的 Main 类已添加到我的 .fla 阶段,我想在它完成动画时删除并重新添加/“重新启动”该类。我所有的动画都发生在 Main 中,并被添加到 Main 中的显示树中。如何finishNow()从 Main.as 中运行该函数?

.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();
        }

    }
}
4

3 回答 3

0

如果你的 .fla 链接到 Main.as 文件,你可以直接调用。尝试这个:

public function Main() {
        finishNow();
}

在此处输入图像描述

.fla 代码

function testFunction()
{
    trace("111");
}

.as 文件

package  {

    import flash.display.MovieClip;


    public class Main extends MovieClip {


        public function Main() {

            testFunction();
        }
    }

}
于 2013-03-12T13:18:36.263 回答
0

你可以调用addframeScript调用FLA函数。

于 2013-03-12T13:22:17.673 回答
0

实际上,不需要每次都创建类对象。每次调用该类中的函数就足够了。

但是对于你的问题..试试这个....

你的文档类

在程序.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"));
 }
于 2013-03-13T04:10:21.507 回答