![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 10
|
Всем доброго времени суток
Подскажите пожалуйста, нужно динамически создать кучку кнопок и событий к ним. Делаю так: for (var i=0; i<50; i++){ yy = yy + 600; var ruport = new ipod(); ruport.name = "ipod" + String(i); ruport.x = yy; ruport.y = 160; lenta.addChild(ruport); srk.push(String('photo-999999_'+e[i]['pid'])); srk1.push(ruport); srk1[i].addEventListener(MouseEvent.CLICK, rupodg); function rupodg(e:MouseEvent):void { VK.api('wall.post', {owner_id:viewer_id, attachments:srk[i], from_group:0,message:'лалала',signed:0}, onLoadWall, onError); } } В итоге создаются кнопки, но при нажатие на них одинаковое действие с последним значением массива ссылок "srk", а мне нужно что бы разные attachments были у каждой.. |
|
|||||
|
ух, что ж у вас код так расколбасило то... ну окей, вот так должно прокатить, если у вас в мувике этот код находится
for (var i=0; i<50; i++){ yy = yy + 600; var ruport = new ipod(); ruport.name = "ipod" + String(i); ruport.x = yy; ruport.y = 160; lenta.addChild(ruport); srk.push(String('photo-999999_'+e[i]['pid'])); srk1.push(ruport); srk1[i].addEventListener(MouseEvent.CLICK, this["rupordg"+i]); this["rupordg"+i] = function (e:MouseEvent):void { VK.api('wall.post', {owner_id:viewer_id, attachments:srk[i], from_group:0,message:'лалала',signed:0}, onLoadWall, onError); } }
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 10
|
Так почему то вообще перестали нажиматься..
|
|
|||||
|
Цитата:
Дело в том, что это создание функции "на лету", поэтому лучше поменять местами.
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 10
|
Поменял местами, начали нажиматься, но эффект такой же:
Например ставим message:'лалала' + i При нажатие на все кнопки выводит лалала50, а не лалала0, лалала1 и т.д. |
|
|||||
for (var i=0; i<50; i++){ yy = yy + 600; var ruport = new ipod(); ruport.name = "ipod" + String(i); ruport.x = yy; ruport.y = 160; lenta.addChild(ruport); srk.push(String('photo-999999_'+e[i]['pid'])); srk1.push(ruport); this["rupordg"+i] = function (e:MouseEvent):void { VK.api('wall.post', {owner_id:viewer_id, attachments:srk[i], from_group:0,message:'лалала',signed:0}, onLoadWall, onError); }(); srk1[i].addEventListener(MouseEvent.CLICK, this["rupordg"+i]); }
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 10
|
Немного упростил код:
var srk:Array = new Array(); var srk1:Array = new Array(); var yy = -10; for (var i=0; i<5; i++){ yy = yy + 25; var ruport = new ipod(); ruport.x = yy; ruport.y = 160; addChild(ruport); srk.push(ruport); srk1.push(i); this["rupordg"+i] = function (e:MouseEvent):void { trace(i); } srk[i].addEventListener(MouseEvent.CLICK, this["rupordg"+i]); } |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 10
|
Выдает ошибку:
|
|
|||||
|
Ааа, не, точно, тут же маусивент нужен.
Окей, значит, суйте туда вместо i индекс ячейки массива, по которому находится кнопка(если они совпадают). А ещё заметил, что вы и i сохраняете в srk1, тогда ещё так можно вытащить.
__________________
There is no thing in this world that is not simple. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|