嘿伙计们,所以我在试图弄清楚如何做到这一点时遇到了一些麻烦。我有一个名为 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 个单独的函数 1 个函数用于从舞台顶部开始,另一个用于舞台底部。所以我会从我的 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 无法正常工作。
请任何帮助将不胜感激!