嘿,大家好,我在尝试弄清楚如何做到这一点时遇到了一些麻烦。我有一个名为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类中取出补间,并将它们添加到引擎类,以便我可以更改值正确?
像这样的事情也许在引擎类:
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无法正常工作。
请任何帮助,将不胜感激!
有趣。所以你分配点变量。但即时通讯仍然有点与代码混淆。我不知道它将如何改变它开始时每个新层次的起始位置。 – Nathan
看到我的补充。你必须为你的关卡构建某种配置。用方法来列出一个项目的所有可能的位置是不实际的。 – Larusso