![]() |
Каким образом через event listener передать переменную в функцию?
У меня есть "создатель частиц", и мне их нужно в определенный момент (к примеру, когда полностью частица выполнит Tween _fly) удалять. Но, как вы видите, в коде невозможно с листенером передать тот же спрайт в новую функцию, чтобы он уже работал с ней. Есть идеи, как это выполнить? Полный код с возможностью теста вот:
Код AS3:
|
А у Tween нет ссылки для кого он работает? А у TweenEvent?
|
Есть .currentObject у TweenEvent. Он возвращает Tween (то бишь _fly перелетает плавно в функцию dissapear)
У Tween-а есть .obj, но я к нему даже если присвою этот Tween чему-то не могу достучаться. Куча ошибок в выводе висит. |
я более чем уверен, что у TweenEvent есть свойства target и currentTarget.
|
.currentTarget у TweenEvent возвращает просто объект Tween. А мне нужно доступ к спрайту i, которым управляет Tween. Все намного сложнее)
Добавлено через 7 минут Ура! Я исправил и теперь все исчезает. Остался один момент. Я думал это связано с бесконечным спавном частиц. Оказывается... Почему у меня все зависает? К примеру Tween около 98 из 100 шаров просто застывает? Я думал это графический глюк а это программный. Вот исправленный код, можете сами протестить у себя. Код AS3:
|
http://help.adobe.com/ru_RU/FlashPla...ons/Tween.html
Цитата:
Код AS3:
|
Я могу ошибаться, но возможно у меня где-то конфликт с именами у Tween. Т.е. когда одна из частиц заканчивает движение внезапно все застывают. Не понимаю, где косяк.
Добавлено через 38 секунд Gbee да, вы правы :) Исправил. Проблема теперь в застывании всех частиц. Добавлено через 1 час 33 минуты Немного погуглив узнал о Garbage Collection, великолепной помойке, месте, куда флеш скидывает все мои твины, решив, что я насилую без перебоя то ли sprite переменную то ли _fly и drop. В общем по факту - нельзя все это как в AS2 через одну ссылку (ей является sprite, после i) столько переменных проносить. Метод "групповухи" теперь не работает. Решение я нашел, судя по всему - надо использовать массив, где будут храниться эти спрайты. Но у меня появился вопрос. Я могу ошибаться, но разве в массиве можно использовать спрайты? И еще, может я зря использую Tween для этой анимации и есть способ проще? А то я в интернете натыкаюсь постоянно на то, что Tween вшитий во флеш имеет свои баги и вообще лучше всего качать сборки Tween класса(Tweener и другие). |
В массиве можно спрайты, можно в типизированном массиве vector спрайты, не вопрос.
|
Сделал массив спрайтов. Не помогло. Зависание повторяется.
Попробую Твины все в каждый массив засунуть. Будет массив Спрайта к примеру particles [1] и ему будут сопоставлены массивы Твинов _flymassive[1] и dropmassive[1]. Честно, я не знаю, что я делаю, но теоретически это сможет сэкономить как-то и оптимизировать все. Вы вообще сталкивались с зависанием в Tween классе? Гугл говорит что это частая проблема для него. Только решения от одного к другому мистические и больше похожи на "подпрыгни дерни за ухо и вроде пройдет". |
Используйте проверенные твины (например TweenNano от greensock) и храните на них ссылки, чтобы GC не убивал объекты.
|
| Часовой пояс GMT +4, время: 19:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.