![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
Привет!
В мувике создаю ссылку на самого себя: для того, чтоб потом без проблем и путанины обращаться к нему в его функциях, присваивать твины и переменные, и т.д. В целом, приём пока работает. Но решил спросить у людей, имеющих опыт побогаче моего:
Что более правильнее: ? Спасибо! Последний раз редактировалось mj_nooker; 30.08.2010 в 21:44. |
|
|||||
|
Модрон-ветеринар
|
Вы все делаете нормально.
А тип данных, конечно же, лучше объявлять.
__________________
Идите первым! |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Для чего в самом себе делать ссылку на самого себя?
|
|
|||||
|
Модрон-ветеринар
|
Иногда бывает надо.
Например, бывают функции, в которых если употребить this, то ссылка будет не на текущий объект, где написан код. А обратиться нужно. Добавлено через 10 минут Вот пример: import mx.transitions.Tween; var NoN:Object = mx.transitions.easing.None.easeNone; var curr:MovieClip = this ; xTween(my_mc, my_mc._x + 100, 3); function xTween (mc:MovieClip, fin:Number, t:Number) { var mcOn:Tween = new Tween(mc, '_x', NoN, mc._x, fin, t, true); mcOn.onMotionChanged = function() { //допустим, в этой функции нужно ссылаться на текущий таймлайн, чтобы например, обратиться // к каким-то другим объектамм на нем - переменным, мувикам //тут, внутри обработчика события, this будет ссылаться на объект Tween, //например, можно выводить текущее время твина: trace(this.time); //а вот как сослаться на текущий таймлан? //один способ - задали в начале ссылку на текущий таймлайн и ее используем trace(curr); //второй способ: trace(this.obj._parent); // - используя внутреннее свойство Tween obj - ссылку на объект, над которым tween выполняется //но это не очевидно - обращаемся к текущему таймлайну как к родителю мувика, //который там находится, который двигаем. Кривовато. Потому 1-й способ лучше. }; }
__________________
Идите первым! Последний раз редактировалось mooncar; 31.08.2010 в 00:10. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Я так понял, что автор на классах пишет. Если это так, то способ не верный. Нужно вызывать метод в верной области видимости с помощью делегата.
upd: иначе непонятно зачем это надо. Последний раз редактировалось udaaff; 31.08.2010 в 00:12. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1. Нет;
2. Сжирает память, нечитабельный код; 3. В данном случае это не принципиально ввиду п. 1; 4. Delegate. |
|
|||||
|
Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
|
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
mooncar, спасибо за точный и втемный ответ
нет а почему сжирает? смотрел на расход памяти и на загрузку проца - ничего не заметно. остальные пункты ответа проигнорены ввиду их несоответствия действительности ![]() ээ.. а что это? как с помошью этого обратиться к мувику родителю твина в функции, вложенной в функцию onMotionFinished? ![]() прежде чем отвечать - относитесь внимательно и с уважением к мыслям писаки )) всем ответившим спасибо! |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Что значит «не соответствует действительности»? Вы считаете, что делаете правильно? ОК, тогда зачем была создана тема?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|