如何运行附加到.fla文件的main.as类文件中另一个.as文件的构造函数代码?

时间:2018-09-04 12:02:10

标签: actionscript-3

我有一个名为“ Main”的主类文件,该文件链接到主.fla文件。这是此文件中当前的代码:

package  {

import flash.display.MovieClip;
import CharacterPkg.Character;

public class Main extends MovieClip {

    public function Main() {

        var newCharacter:Character = new Character;
        Character();
    }
  }
}

然后我有一个文件,我想在.fla文件的主舞台上使用该文件来创建角色。这是该文件的代码:

package  CharacterPkg{

import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;

public class Character extends MovieClip {

    public function Character() {

        trace("This is running");
    }
  }
}

我希望在运行.swf时运行Character.as文件中的构造函数代码。但是我只收到1136错误:参数数量不正确。预期为1。

我不知所措,花了两天的时间来解决这个问题。我对此很陌生,可能只是犯了一些愚蠢的错误,但我无法弄清楚。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试方式:

package  
{
    import flash.display.MovieClip;
    import CharacterPkg.Character;

    public class Main extends MovieClip 
    {

        public function Main() 
        {
            //Character(); //is not needed (won't work).

            var newCharacter :Character = new Character();
            addChild( newCharacter ); //this way auto-runs the constructor function code.
            //newCharacter.someFunction(); //example to run any other functions within newCharacter class.
        }

    }
}

addChild类时,您会自动运行该特定类的构造函数。

要运行该其他类中的任何其他函数,只需使用类似instanceName.xxx();的路径,其中您的 instanceName newCharacter,而xxx代表一个函数名,请关闭();

修改

要解决第二个问题,请确保:

1)您已正确将Main.as链接到FLA。

  • 通过单击舞台的空白部分取消选择任何项目,然后按 ctrl + F3

  • Main.as是否列为类(在“ 发布”标签下)?

2)Main.as的代码:

package  
{
    import flash.display.MovieClip;
    import CharacterPkg.Character;

    public class Main extends MovieClip 
    {
        public var newCharacter :Character;

        public function Main() 
        {
            newCharacter = new Character();
            addChild( newCharacter ); //this way auto-runs the constructor function...
            newCharacter.secondFunction(); //example to run any other functions in newCharacter class..
            newCharacter.thirdFunction(); //another test
        }

    }
}

3)Character.as的代码(在名为 CharacterPkg 的文件夹中):

package  CharacterPkg
{

import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;

public class Character extends MovieClip 
{

    public function Character() //constructor function 
    {
        trace("This is running");
    }

    public function secondFunction() :void
    {
        trace("This is second Function");
    }

    public function thirdFunction() :void
    {
        trace("This is third Function");
    }

} //end class
}//end package