メイン クラスが .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 にあります)。TypeError program.finishNow();
:
エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。
.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();
}
}
}