やあ皆さん、これを行う方法を理解しようとして少し苦労しています。私は mcGoal_1 という名前のムービー クリップ オブジェクトを持っており、そのクラスでは、TweenLite を使用して垂直方向にステージを上下にトゥイーンしています。Level_1 では一番下から開始しますが、level_2 が開始されたときに一番上から開始したいのですが、これを達成するために各レベルの値を変更する方法がわかりません。これが私がそれを一番下から始めるために使用するコードです:
private function init():void
{
TweenMax.to(this, 4, { y:40, repeat: -1, yoyo:true, ease:Power0.easeInOut } );
TweenLite.from(this, 2, {autoAlpha:0});
}
次に、エンジン クラスで、次のコードを使用してステージに追加しました。
mcGoal_1 = new goal_1();
stage.addChild(mcGoal_1);
mcGoal_1.x = (stage.stageWidth / 2) + 350;
mcGoal_1.y = (stage.stageHeight) - 35;
したがって、すべてがうまく機能しますが、私が達成したいのは、各新しいレベルの開始時に mcGoal_1 の位置を変更することです。したがって、level_2 では、mcGoal_1 の位置を下ではなく上から開始する必要があります。これは、上から開始するためのコードです。
mcGoal_1 クラス:
private function init():void
{
TweenMax.to(this, 2.8, { y:445, repeat: -1, yoyo:true, ease:Power0.easeInOut } );
TweenLite.from(this, 2, {delay:2,autoAlpha:0});
}
次に、エンジン クラスで:
mcGoal_1 = new goal_1();
mcGoal_1.x = (stage.stageWidth / 2) + 350;
mcGoal_1.y = (stage.stageHeight) - 445;
だから今、それは上から始まります。
現在これを行っている方法は、複数の mcGoals を作成することです。レベルごとに新しい目標があるので、今のところ 10 個の目標のムービークリップがあります。しかし、下ではなく上から開始するためにまったく新しいムービークリップを作成するのではなく、新しいレベルごとに mcGoal_1 の値を変更できれば、はるかに簡単になると考えていました。ステージの上部で開始する関数とステージの下部で開始する関数の 2 つの個別の関数を作成する必要があるのではないかと考えていました。それで、mcGoal_1 クラスから Tweens を取り出してエンジン クラスに追加し、値を正しく変更できるようにしますか?
このようなものは、おそらくエンジンクラスにあります:
Private Function startAtTop():void
{
mcGoal_1 = new goal_1();
stage.addChild(mcGoal_1);
mcGoal_1.x = (stage.stageWidth / 2) + 350;
mcGoal_1.y = (stage.stageHeight) - 35;
TweenMax.to(mcGoal_1, 4, { y:40, repeat: -1, yoyo:true, ease:Power0.easeInOut } );
}
Private Function startAtBottom():void
{
mcGoal_1 = new goal_1();
mcGoal_1.x = (stage.stageWidth / 2) + 350;
mcGoal_1.y = (stage.stageHeight) - 445;
TweenMax.to(mcGoal_1, 2.8, { y:445, repeat: -1, yoyo:true, ease:Power0.easeInOut } );
}
次に、新しいレベルごとに関数を呼び出すだけです。ただし、関数は毎秒毎フレーム呼び出され、TweenLite が正しく動作しない原因となるため、これはうまく機能しません。
助けていただければ幸いです!