Эй, ребята, поэтому у меня есть небольшая проблема, пытаясь понять, как это сделать. У меня есть объект Movie Clip с именем mcGoal_1, и в его классе у меня есть анимация вверх и вниз по вертикали, используя TweenLite. На Level_1 он начинается в нижней части, но когда начат level_2, я хочу, чтобы он начинался сверху, но не мог понять, как изменить значения каждого уровня для достижения этого. Вот код, я использую для него, чтобы начать в нижней части:Изменение переменных для одного и того же объекта Movie Clip для каждого уровня
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 положение, чтобы начать сверху, а не снизу здесь код для того, чтобы начать в Top:
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 клипов MovieClips. Но я думал, что было бы намного проще, если бы я мог просто изменить значение mcGoal_1 на каждом новом уровне вместо того, чтобы создавать совершенно новый видеоклип, чтобы начать сверху, а не снизу. Я думал, что, может быть, мне нужно просто создать две отдельные функции. 1 функция - когда она начинается в верхней части сцены, а другая для нижней части сцены. Поэтому я бы взял Tweens из моего класса mcGoal_1 и добавил их в класс Engine, чтобы я мог правильно изменить значения?
Что-то вроде этого, может быть, в классе двигателей:
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.
Пожалуйста, любая помощь будет оценена!
Интересно. Таким образом, вы назначаете точечные переменные. Но я все еще немного смущен кодом. Я не могу понять, как он изменит свою стартовую позицию для каждого нового уровня tht запуска. – Nathan
см. Мои дополнения. Вы должны построить какую-то конфигурацию для своего уровня. Нецелесообразно выкладывать все возможные позиции одного предмета с помощью методов. – Larusso