皆さんからの多くの助け:)。私の次の質問はここにあります:)。
クラス 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();
}
}
}
}