0

皆さんからの多くの助け:)。私の次の質問はここにあります:)。

クラス MyTimer.as と Thief1_mc.as ムービー クリップにタイマーがあります。MyTimer からステージに Child(Thief1_mc) を追加するにはどうすればよいですか? すべてがシンプルに見えますが、唯一の問題は「ステージ」プロパティです。MyTimer クラスは、ステージ自体にないため、「stage」を引数として送信できません。AddChild (MyTimer) のように Main クラスのステージに MyTimer を追加しようとしましたが、トレースは MyTimer がステージ上にあることを示していますが、まだステージ引数を Thief1_mc に渡すことができません。クラス Thief1_mc は、プロパティ「ステージ」を使用してステージに追加する必要があるため、この引数を送信する必要があります。

コード:

public class Thief1_mc extends MovieClip
{

    //this variable type Stage will contain stage
    private var stageHolder:Stage;

    public function Thief1_mc()
    {
        //constructor
    }

    //function that creates this object with passed "stage" argument from the caller
    public function createItself(st):void
    {
        //variable that contain the stage so I can use this argument anywhere in the class 
        stageHolder = st;
        //i have to refer to the stage by passed "st" parameter to create this object
        stageHolder.addChild(this);
        //initial position
        this.x = 380;
        this.y = 230;
    }

}

}

MyTimer クラスとステージ引数付きの「_thief1.createItself(stage)」呼び出し元

public class MyTimer extends Sprite
{
    private static var nCount:Number = 120;
    private static var currentCount:Number;
    private static var _timer:Timer = new Timer(1000,nCount);

    private static var _timerDispather:Timer;
    private static var _thief1:Thief1_mc = new Thief1_mc ;

    public function MyTimer()
    {
        // constructor code
    }

    //another timer
    private static function increaseInterval(interval:int):void
    {
        _timerDispather = new Timer(interval);
        _timerDispather.addEventListener(TimerEvent.TIMER, onUpdateTimeAnotherTimer);
        _timerDispather.start();
    }
    //another timer;
    private static function onUpdateTimeAnotherTimer(e:Event):void
    {

        _thief1.createItself(stage);//the most important part
    }

    public static function activateTimer():void
    {
        currentCount = nCount;
        _timer.addEventListener(TimerEvent.TIMER, onUpdateTime);
        _timer.start();
    }

    public static function deactivateTimer():void
    {
        _timer.removeEventListener(TimerEvent.TIMER, onUpdateTime);
        _timer.stop();
        _timer.reset();
        currentCount = nCount;

        //another timer
        _timerDispather.removeEventListener(TimerEvent.TIMER, onUpdateTimeAnotherTimer);
        _timerDispather.stop();
        _timerDispather.reset();
    }

    private static function onUpdateTime(e:Event):void
    {
        currentCount--;


        if (currentCount == 0)
        {
            _timer.removeEventListener(TimerEvent.TIMER, onUpdateTime);
            _timer.stop();
            _timer.reset();

        }
    }
}

}

4

1 に答える 1