Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   getChildByName добавить listener (http://www.flasher.ru/forum/showthread.php?t=175608)

Blizzart 21.02.2012 04:50

getChildByName добавить listener
 
Не могу понять как мне обратиться к кнопке которую я создал так:
Код AS3:

var p1:gallery = new gallery;
p1.y=350;
p1.name = "butgallery";
addChild(p1);

дальше пишу:
Код AS3:

stage.getChildByName("butgallery").addEventListener(MouseEvent.CLICK, ClickGalleryPic, false, 0, true );

сообщает:
#1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
когда вручную создавал всё работало

udaaff 21.02.2012 05:36

Ну так вы её не на stage добавляли.

TanaTiX 21.02.2012 10:46

Код AS3:

p1.addEventListener(MouseEvent.CLICK, ClickGalleryPic, false, 0, true );

методы пишутся с маленькой буквы, при создании объектов ставятся скобки.

MikroAcse 21.02.2012 17:56

Код AS3:

MovieClip(getChildByName("butgallery")).addEventListener(MouseEvent.CLICK, ClickGalleryPic, false, 0, true );

Не проверял.

TanaTiX 21.02.2012 18:07

MikroAcse, не надо давать вредные советы.

MikroAcse 21.02.2012 18:19

Цитата:

MikroAcse, не надо давать вредные советы.
А что не так?

Вообще я делаю так:
Код AS3:

var someObject:DisplayObject = getChildByName("butgallery") as DisplayObject
someObject.addEventListener(MouseEvent.CLICK, ClickGalleryPic, false, 0, true );


Inet_PC 21.02.2012 18:56

Цитата:

А что не так?
Ну по крайней мере нет проверки на null и DisplayObject не рассылает события мыши. Только наследники InteractiveObject. И не факт, что это MovieClip

TanaTiX 21.02.2012 19:03

Цитата:

А что не так?
Есть ссылка на объект, зачем ее же получать по имени через заднюю пятку, если можно напрямую?

Johny_86 21.02.2012 19:34

Согласен с ТанаТИКСом, что есть ссылка на объект и не зачем изгаляться. Но, чтобы заработало так, как ты хочешь, тебе нужно привести к типу объекта, то, что ты получил getChildByName()-ом.
Код AS3:

gallery(stage.getChildByName("butgallery")).addEventListener(MouseEvent.CLICK, ClickGalleryPic, false, 0, true );


MikroAcse 21.02.2012 21:52

Цитата:

gallery
Черт, я пропустил то, что тип объекта gallery


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

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