![]() |
Кто вызвал функцию?
Вложений: 1
В кадре есть, например, три кнопки, по нажатию на какую-либо из них, выводится (trace)
переменная, которая находится внутри неё. (Button.perem) Но как отследить какая кнопочка была нажата? З.Ы. Конечно можно и так: Код:
_root.but1.onRelease=function(){Тут циклом, это тоже знаю как сделать, но ведь, интересно, возможен-ли первый вариант? Если что-то не понятно, вот: |
trace(this.perem)
|
Пользоваться mx.core.EventDispatcher
|
>>Пользоваться mx.core.EventDispatcher
не очень ясно зачем, если кнопки уже подписаны на onRelease: кто вызвал? - this и вызвал, чего еще.. |
Цитата:
|
Маленько не так сказал:
Так будет работать, если привязать к кнопке. А мне надо к функции. |
Вложений: 1
к функции так к функции
Код:
but1.perem="FraDDy1"; |
Э... это самое..... да, вот.... спасибо :D)) , но не пояснишь что это такое?
Код:
but3.onRelease=but2.onRelease=but1.onRelease=WhatIsName;Цитата:
А раз не нашел, то не знаю как её правильно использовать. Как полагаю, то так: trace(mx.core.EventDispatcher(this.perem)); но раз не работает, то значит не правильно. Дай, пожайлуста, ссылочку откуда откопал эту команду, поразбираюсь, вдруг пригодиться. :D |
>>Особая форма записи функции? Первый раз такое вижу.
да обычная: обрабочикам onRelease кнопок присваиваем ссылку на функцию.. |
silin просто сделал функцию, реализующую тот же самый this.perem и навесил её на onRelease твоих кнопок.
не знаю, я традиционно (наверное) не люблю так делать. к чему лишний код? пишу код в мувике кнопки (то, что silin в первом посте написал), а её инстансы получают его дефолтом. да, в моём варианте код раскидан ещё и по тайм-лайнам мувиков. но если не работаешь в супер большой команде с супер текучкой кадров (в смысле HR), то и пох, если честно! silin вот, кстати, как я посмотрю, лишний код вообще не воспринимает. я-то по паскалевски старомоден и код структурирую. ну вот не могу я читать одной строкой Код:
if (something) {трам; пам; пам;} |
2Double
могу сказать 'к чему лишний код': иной раз он и не лишний, как здесь например: если написать but1.onRelease=but2.onRelease=function(){trace('x')}, то каждая кнопка понесет на борту функцию (объект), а если but1.onRelease=but2.onRelease=someFun, то только ссылку.. здесь это копейки, но можно представить ситуацию, когда экономия ресурсов будет существенной.. |
2silin, я чуть-чуть не о том :) я говорил, что если у меня будет n-однотипных (по свойствам) объектов в сцене, то я сделаю этот объект в библиотеке, там (на его тайм-лайне) навешу ему все "родительские" функции, которые его инстансы и "унаследуют" :) такое вот ООП в упрощённом виде ;) а писать функцию, ссылку на которую затем программно присваивать на-аттаченым клонам, я почему-то не люблю. вседь если кол-во клонов произвольное, то придётся код или в функции клонирования (хех) писать, или потом их циклом перебирать. моя позиция нелогична, но для меня - привычна :-D я об этом и говорил, флейм.
|
>>такое вот ООП в упрощённом виде
именно что в упрощенном: инстансы не унаследуют родительские функции, а будут иметь каждый по своей копии (хотя это и не принципально для небольших задачек) >>а писать функцию, ссылку на которую затем программно присваивать на-аттаченым клонам.. так а классы начто? зы: я ни разу не адепт истинного ООП, но чего ж не писать грамотно раз есть возможность, хотя и дело вкуса/привычки.. |
да нет, просто я лентяй. если задача не супер-пупер ресурсоёмкая, то я предпочитаю делать так, как описал выше: один раз прописал общие свойства, а потом про них даже и не вспоминай, аттачь на здоровье. да, получаются копии (аналогично mc1.func=mc2.func=function(){}) и код размазан по разным тайм-лайнам. но если речь идёт о чём-то не супер-глобальном...
|
Сил, выйдет АС3 в полном релизе -- сам знаешь, что будет с ООП-неадептами ;)
|
2Antares! Я написал, но ты видно не заметил:
Попыталься в хелпе найти эту команду, и ничё не нашел. Флеш 8. А раз не нашел, то не знаю как её правильно использовать. Как полагаю, то так: trace(mx.core.EventDispatcher(this.perem)); но раз не работает, то значит не правильно. Дай, пожайлуста, ссылочку откуда откопал эту команду, поразбираюсь, вдруг пригодиться. |
2silin, 2Double, теперь всё понял, спасибо.
Кстати, мне тоже чет тоже понравился такой прием, проше записывать.:D) |
| Часовой пояс GMT +4, время: 18:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.