Попробуйте как:
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