PDA

Просмотр полной версии : получение имени объекта


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
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 который лежит в корне, а в нем уже сама карта