Форум 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=65930)

Vader666 23.06.2005 07:27

получение имени объекта
 
Значит ситуация такая: в кадре есть порядка 150 одинаковых объектов в виде кнопки. Каждой кнопке задается имя в формате "m101" "m102".... "m1xx", "m201" "m202".... "m2xx", "my01" "my02".... "myxx".
писать обработчик для каждой кнопки как то не очень будет хорошо:
Код:

m101.onPress = function() {
        trace ("нажали m101");
}

можно ли получить имя нажатой кнопки программно и потом это имя передать дальше допустим скрипту на PHP?

netstuff 23.06.2005 11:23

Код:

m101.onPress = function() {
        trace (this._name);
}

на самом деле, имя объекта нужно реже нежели сам объект. в твоём случае, это this

Vader666 23.06.2005 12:02

Цитата:

Сообщение от netstuff
Код:

m101.onPress = function() {
        trace (this._name);
}

на самом деле, имя объекта нужно реже нежели сам объект. в твоём случае, это this

а можно без надписи "m101" перед onPress, чтоб не писать для каждого объекта обработчик события??? их много блин :(

Nirth 23.06.2005 12:05

Не совсем понял что ты хочешь, но если их много можно сократить, читай топик
http://www.flasher.ru/forum/showthread.php?t=65856

KUZEN 23.06.2005 12:12

Перебирай в цикле и вешай на каждую кнопку события
Код:

for(var i=0;i<150;i++){
    _root["m"+i].onPress = function(){
      ..........................
}
}


Vader666 23.06.2005 17:03

2 Nirth & KUZEN:
значит задача такая: есть карта разделенная на несколько областей (это m1, m2, m3..... mx), в каждой области присутствуют несколько точек - кнопок (это 01, 02, ... хх). Теперь нужно чтобы при нажатии на некоторую кнопку - передавалось само имя этой кнопки в скрипт ПХП. Перебирать в цикле смысла нет, так как последняя кнопка имеет имя - m1103, думаю просто тормозить будет потому как ожидается что могут тыркать на кнопки довольно часто.

ЗЫ. сделать для каждой кнопки обработку "тырка" можно, но получается громоздко, просто нет ли более удобоваримого и оптимального варианта?

Nirth 23.06.2005 17:17

ты внимательно прочел тот топик? там было предложение создания класса.

Vader666 23.06.2005 20:48

как работать с классами я совсем не знаю :(

Штрек 23.06.2005 21:10

Повесь на кнопку/мувик/ в библиотеке код
this.onPress=function(){
_root.per=this._name//знач.перем.для PHP или чего др.
//это будет строка.....
}

Vader666 23.06.2005 23:05

пришел в голову только такой вариант.
Код:

for (j = 1; j < 12; j++) {
        for (i=1; i < 26; i++) {
                if (i<10) {
                        m_tmp = "0" + i;
                }
                else {
                        m_tmp = i;
                }
                metro_pt =
                _level0.scroll.tmp_mc["m" + j + m_tmp].onPress = function() {
                        trace (targetPath(this));
                }
        }
}

вопрос теперь вот в чем: как это _level0.scroll.tmp_mc будет работать на различных машинах? scroll - это компонент ScrollPane который лежит в корне, а в нем уже сама карта


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

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