Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Кто вызвал функцию? (http://www.flasher.ru/forum/showthread.php?t=74010)

Fr@ddy 09.01.2006 14:39

Кто вызвал функцию?
 
Вложений: 1
В кадре есть, например, три кнопки, по нажатию на какую-либо из них, выводится (trace)
переменная, которая находится внутри неё. (Button.perem)
Но как отследить какая кнопочка была нажата?

З.Ы.
Конечно можно и так:
Код:

_root.but1.onRelease=function(){
        trace(but1.perem)
}
_root.but2.onRelease=function(){
        trace(but2.perem)
}
_root.but3.onRelease=function(){
        trace(but3.perem)
}

Так не интересно, и ещё если я захочу произвольное кол-во кнопок?
Тут циклом, это тоже знаю как сделать, но ведь, интересно, возможен-ли первый вариант?

Если что-то не понятно, вот:

silin 09.01.2006 15:17

trace(this.perem)

Antares 09.01.2006 16:38

Пользоваться mx.core.EventDispatcher

silin 09.01.2006 16:55

>>Пользоваться mx.core.EventDispatcher
не очень ясно зачем, если кнопки уже подписаны на onRelease: кто вызвал? - this и вызвал, чего еще..

Fr@ddy 09.01.2006 17:27

Цитата:

Сообщение от silin
trace(this.perem)

Так тоже пробовал. Не катит. "undefined"

Fr@ddy 09.01.2006 17:52

Маленько не так сказал:
Так будет работать, если привязать к кнопке.
А мне надо к функции.

silin 09.01.2006 18:05

Вложений: 1
к функции так к функции
Код:

but1.perem="FraDDy1";
but2.perem="FraDDy2";
but3.perem="FraDDy3";
but3.onRelease=but2.onRelease=but1.onRelease=WhatIsName;
function WhatIsName() {
        trace(this.perem)
}


Fr@ddy 09.01.2006 18:44

Э... это самое..... да, вот.... спасибо :D)) , но не пояснишь что это такое?
Код:

but3.onRelease=but2.onRelease=but1.onRelease=WhatIsName;
Особая форма записи функции? Первый раз такое вижу.


Цитата:

Сообщение от Antares
Пользоваться mx.core.EventDispatcher

Попыталься в хелпе найти эту команду, и ничё не нашел. Флеш 8.
А раз не нашел, то не знаю как её правильно использовать.
Как полагаю, то так:
trace(mx.core.EventDispatcher(this.perem));
но раз не работает, то значит не правильно.

Дай, пожайлуста, ссылочку откуда откопал эту команду, поразбираюсь, вдруг пригодиться. :D

silin 09.01.2006 19:05

>>Особая форма записи функции? Первый раз такое вижу.
да обычная: обрабочикам onRelease кнопок присваиваем ссылку на функцию..

Double 09.01.2006 19:06

silin просто сделал функцию, реализующую тот же самый this.perem и навесил её на onRelease твоих кнопок.

не знаю, я традиционно (наверное) не люблю так делать. к чему лишний код? пишу код в мувике кнопки (то, что silin в первом посте написал), а её инстансы получают его дефолтом. да, в моём варианте код раскидан ещё и по тайм-лайнам мувиков. но если не работаешь в супер большой команде с супер текучкой кадров (в смысле HR), то и пох, если честно! silin вот, кстати, как я посмотрю, лишний код вообще не воспринимает. я-то по паскалевски старомоден и код структурирую. ну вот не могу я читать одной строкой
Код:

if (something) {трам; пам; пам;}
мне, блин, всё надо с отступами в зависимости от степени вложенности по строчкам разнести. глупо, конечно. да и флейм ;)


Часовой пояс GMT +4, время: 06:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.