Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Непонятки с setChildIndex (http://www.flasher.ru/forum/showthread.php?t=149244)

SONce 21.01.2011 12:49

Непонятки с setChildIndex
 
На сцене 4 UILoader
код
Код AS3:

Object(root).l1.load(new URLRequest("http://***/images/trava.png"));
Object(this).setChildIndex(l1,0);
l1.addEventListener(MouseEvent.CLICK,cl);
 
 
Object(root).l2.load(new URLRequest("http://***/images/trava.png"));
Object(this).setChildIndex(l2,0);
l2.addEventListener(MouseEvent.CLICK,cl);
 
Object(root).l3.load(new URLRequest("http://***/images/trava.png"));
Object(this).setChildIndex(l3,0);
l3.addEventListener(MouseEvent.CLICK,cl);
 
function cl(e:Event){
 
        trace(Object(this).getChildIndex(e.currentTarget));
}

в данном случае setChildIndex не работает почемуто.
Хотя если на клик поставить тотже setChildIndex то индекс поменяется.
Что я упускаю?

bav 21.01.2011 12:59

А что у вас получается после выполнения данного кода? l1 лежит выше всех, под ним l2 и ниже всех l3?

SONce 21.01.2011 13:00

верно, l1 - индекс 2, l3-0

bav 21.01.2011 13:09

Все работает правильно. Что вы ожидали увидеть?
У нас есть три, скажем, клипа. Они имеют следующие индексы.
Код:

clip_3 : 2
clip_2 : 1
clip_1 : 0

После выполнения строчки:
Код AS3:

setChildIndex(clip_3, 0);

ситуация будет следующей:
Код:

clip_2 : 2
clip_1 : 1
clip_3 : 0


SONce 21.01.2011 13:11

тоесть выстроить на одном уровне(индексе 0) невозможно?

bav 21.01.2011 13:14

Нет. А как вы это представляете визуально?

SONce 21.01.2011 13:16

ну все обьекты в ряд. тоесть два обьекта не могут иметь одинаковый индекс?

bav 21.01.2011 13:21

Два экземпляра DisplayObject не могут иметь один и тот же индекс в списке отображения. Даже если визуально они не перекрываются, они все равно имеют различные индексы, иными словами, лежат на разных слоях.

Добавлено через 2 минуты
Цитата из хелпа:
Цитата:

Когда используется метод setChildIndex() и указывается уже занятая позиция индекса, меняются только позиции между прежней и новой позицией экранного объекта. Все остальные остаются без изменения. Если потомок перемещается на более НИЗКУЮ позицию, позиции всех потомков между этими позициями станут на 1 ВЫШЕ. Если потомок перемещается на более ВЫСОКУЮ позицию, позиции всех потомков между этими позициями станут на 1 НИЖЕ.

soulburner 22.01.2011 05:09

Цитата:

Сообщение от SONce (Сообщение 966526)
ну все обьекты в ряд. тоесть два обьекта не могут иметь одинаковый индекс?

Конечно, не могут. Сами представьте. Что бы делал флэш, если бы такие объекты (с одинаковым индексом) - наложились друг на друга? Какой рисовать выше?

Во всем нужна однозначность :) Т.е. сколько объектов - столько и слоев.

DanQuimby 22.01.2011 12:44

главное отличие этой функции 2.0 и 3.0
это в 2.0 ты мог писать индекс к примеру 0,123, 223
то в 3.0 ОБЯЗАТЕЛЬНО по мере заполненности
0,1,2,3 и тд


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

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