![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 23.04.12]
Регистрация: Mar 2012
Адрес: Третья от Солнца планета.
Сообщений: 20
|
Учу AS3, пишу плеер для вконтакта. Есть массив из кнопок с именами-значениями ИД пользователя, список песен которого нужно получить. Делаю цикл for, в котором обхожу все элементы, вешая на них addEventListener.
В функции слушателе я получаю ИД через e.target.name, и делаю запрос к апи контакта audio.get, с нужным мне именем. В оффлайн тесте - все прекрасно работает, но вот из самого контакта как кнопка работает только последняя в массиве. Всю голову сломал. Пробовал разные варианты вешания события на кнопку и из самого класса-контейнера с кнопками, и из главного класса приложения - эффект один. Причем e.target.name всегда передает ИД пользователя. |
|
|||||
|
код в студию
__________________
местонахождение |
|
|||||
|
[+1 23.04.12]
Регистрация: Mar 2012
Адрес: Третья от Солнца планета.
Сообщений: 20
|
public function drawKnopki(dataFr:Object):void { for (var key:uint = 0; key < dataFr.length; key++) { var friend:Object = dataFr[key]; friendsButtons.push(new FriendsPlusFoldersContainer.FriendButSimpleBut(friend)); friendsButtons[key].name = friend['uid']; addChild(friendsButtons[key]); friendsButtons[key].y = 100 * key + 5; } } dataFr - полный ответ на friends.get от контакта. FriendButSimpleBut - это SimpleButton, расширенный спрайтами кнопок и цветами. В главном классе, когда приходит ответ от контакта(dataFr) выполняется следующая функция public function onFriendsLoad(dataFr:Object):void { friendsContainer = new FriendsPlusFoldersContainer.FriendsPlusFoldersContainer(dataFr); friendsContainer.x = 380; friendsContainer.y = playka.y + playka.height + 5; for (var key:uint = 0; key < dataFr.length; key++) { var temp:String = dataFr[key]['uid']; friendsContainer.friendsButtons[key].addEventListener(MouseEvent.CLICK, playListClickListener); } addChild(friendsContainer); } playka другой контейнер, не имеющий в данном случае отношения к делу public function playListClickListener(e:MouseEvent):void { var tempTf:TextField = new TextField(); tempTf.text = (e.target.name); tempTf.x=250; playka.addChild(tempTf); trace("Вы нажали " + e.target.name); VK.api('audio.get', { uid: e.target.name }, audioListLoadComplite, onError); e.updateAfterEvent(); } audioListLoadComplite - фунция, выполняющая рисование самих песен кнопок на основе ИД пользователя. Если нужно - могу и весь код скинуть. Так же просьба не судить строго, но на ошибки указывать, учусь как никак) Добавлено через 24 часа 31 минуту Обнаружил неточность в показаниях. Как выяснилось, не работают только некоторые кнопки, причем закономерность обнаружить не удалось. Последний раз редактировалось zoomerland; 15.03.2012 в 14:16. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|