Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как узнать номер дочернего мувиклипа? (http://www.flasher.ru/forum/showthread.php?t=145435)

alexes 07.10.2010 18:19

Как узнать номер дочернего мувиклипа?
 
Есть мувиклип, содержащий в себе 10 мувиклипов, допустим.

С помощью конструкции:
Код AS3:

for (var i:int = 0; i < this.wines.numChildren; i++) {
    this.wines.getChildAt(i).addEventListener(MouseEvent.CLICK, open_big_wine);
}

задаю всем мувиклипам слушать событие-клик.

Теперь получаю клик, в функции, но мне нужно узнать индекс того мувика, по которому нажал пользователь. Именно номер. Как это сделать?

-De- 07.10.2010 18:22

getChildIndex

zuxul 07.10.2010 18:23

Код AS3:

e.target.parent.getChildIndex(e.target)

Уверен, что Ваша задача решается проще и правильней, но гадать что Вы хотите, не буду.

alexes 07.10.2010 18:26

Код AS3:

private function open_big_wine(e:MouseEvent):void {
    trace(e.currentTarget.getChildIndex());
}

Вот так не работает. Выдает ошибку : ArgumentError: Error #1063: Argument count mismatch on flash.display::DisplayObjectContainer/getChildIndex(). Expected 1, got 0.
at basic_chacha/open_big_wine()

Добавлено

Если кому нибудь интересен, нашлось такое решение:
Код AS3:

var target:DisplayObject = wines.getChildByName(e.currentTarget.name); 
var chacha_id:int = wines.getChildIndex(target);


alatar 07.10.2010 19:31

Вряд ли такое решение будет кому-либо интересно. Зачем два раза искать ребенка в контейнере?
Код AS3:

var chacha_id:int = wines.getChildIndex(e.currentTarget);

P.S. chacha_id – это по-сути не id, это порядковый номер (индекс) в списке отображения контейнера.

alexes 07.10.2010 22:37

2 alatar Спасибо


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

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