|
|
|||||
Регистрация: Apr 2010
Сообщений: 25
|
Помощь с функцией
Ребят, помогите, такой вопрос....
Есть вот такая функция : - Входящие данные : trp1 - это имя созданного программно мувиклипа trp2 - это координаты икса (точки назначения) trp3 - это координаты игрика (точки назначения) trp4 - скорость // ------------------------------------------------------------------------------------------------------------------------------- move = function (trp1:String,trp2:String,trp3:String,trp4:String) { if (this.tw1) { this.tw1.stop(); } if (this.tw2) { this.tw2.stop(); } if (this.tw3) { this.tw3.stop(); } var len = 30; var angle = 180 * Math.atan2(trp3 - getProperty(eval(trp1),_y), trp2 - getProperty(eval(trp1),_x)) / Math.PI; if (Math.abs(angle + 360 - getProperty(eval(trp1),_rotation)) < Math.abs(angle - getProperty(eval(trp1),_rotation))) { angle += 360; } if (Math.abs(angle - 360 - getProperty(eval(trp1),_rotation)) < Math.abs(angle - getProperty(eval(trp1),_rotation))) { angle -= 360; } // Tweening this.tw1 = new mx.transitions.Tween(eval(trp1), "_rotation", Strong.easeOut, getProperty(eval(trp1),_rotation), angle, len); this.tw2 = new mx.transitions.Tween(eval(trp1), "_x", Strong.easeOut, getProperty(eval(trp1),_x), trp2, parseInt(trp4)); this.tw3 = new mx.transitions.Tween(eval(trp1), "_y", Strong.easeOut, getProperty(eval(trp1),_y), trp3, parseInt(trp4)); this.tw1.onMotionFinished = function() { }; } // ---------------------------------------------------------------------------------------------------------------------------------- чтобы как бы для каждого объекта вызывалась своя функция а не одна и та же Последний раз редактировалось iostream; 22.08.2010 в 02:45. |
|
|||||
Регистрация: Apr 2010
Сообщений: 25
|
проверял, не работает так как ты предложил
помогите ... что мне делать =(((( |
|
|||||
Регистрация: Feb 2008
Сообщений: 560
|
Дело в том, что вы используете одни и те же переменные для запоминания идентификаторов твина. Если вам не нужен обработчик "onMotionFinished" то сделайте так:
// ------------------------------------------------------------------------------------------------------------------------------- move = function (trp1:String,trp2:String,trp3:String,trp4:String) { var len = 30; var angle = 180 * Math.atan2(trp3 - getProperty(eval(trp1),_y), trp2 - getProperty(eval(trp1),_x)) / Math.PI; if (Math.abs(angle + 360 - getProperty(eval(trp1),_rotation)) < Math.abs(angle - getProperty(eval(trp1),_rotation))) { angle += 360; } if (Math.abs(angle - 360 - getProperty(eval(trp1),_rotation)) < Math.abs(angle - getProperty(eval(trp1),_rotation))) { angle -= 360; } // Tweening new mx.transitions.Tween(eval(trp1), "_rotation", Strong.easeOut, getProperty(eval(trp1),_rotation), angle, len); new mx.transitions.Tween(eval(trp1), "_x", Strong.easeOut, getProperty(eval(trp1),_x), trp2, parseInt(trp4)); new mx.transitions.Tween(eval(trp1), "_y", Strong.easeOut, getProperty(eval(trp1),_y), trp3, parseInt(trp4)); } // ---------------------------------------------------------------------------------------------------------------------------------- А если исходить из того что у вас создана переменная и ей присвоена функция, то вероятно вы хотели ее использовать так: и далее вызывать уже В этом случае можно использовать вашу, исходную функцию. Она будет "личная" у каждого созданного мувиклипа и при повторном вызове будет останавливать именно "свою" анимацию перед запуском следующей. Последний раз редактировалось rainbowrussia; 22.08.2010 в 14:05. |
|
|||||
Регистрация: Apr 2010
Сообщений: 25
|
Спасибо за помощь все заработало
|
Часовой пояс GMT +4, время: 02:13. |
|
« Предыдущая тема | Следующая тема » |
|
|