Форум 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=118695)

zurkis 01.12.2008 16:08

глубина объектов
 
Добрый день! подскажите как заставить объект, кнопку подняться на уровень выше, если в AS2 был swapDepths, то в AS3 что есть вместо swapDepths и как скажем так, кнопку нужно поднять чтоб он была поверх всего, что для этого надо?
кусок примера как ее поднять поверх всего если не трудно, приведите

silin 01.12.2008 16:25

Код AS3:

var depth:int = getChildIndex(obj);
swapChildrenAt(depth, numChildren-1);//поверх всех
//if(depth<numChildren-1) swapChildrenAt(depth, depth + 1);//на уровень выше


s8000_1 01.12.2008 16:35

silin, для поднятия наверх addChild(obj) работает быстрее *правда срабатывают REMOVED_FROM_STAGE и ADDED_TO_STAGE

silin 01.12.2008 17:04

дада, я тоже пользую removeChild/addChild
при сортировке, например, очень удобно: снес всех и выставил в новом порядке
правда, кто-то мне доказывал ( не помню уже кто и где), что при этом визуально заметно мельтешение, но я в упор не вижу откуда бы ему взяться..

etc 01.12.2008 18:26

Цитата:

Сообщение от s8000_1 (Сообщение 780804)
silin, для поднятия наверх addChild(obj) работает быстрее *правда срабатывают REMOVED_FROM_STAGE и ADDED_TO_STAGE

Неправда.

s8000_1 01.12.2008 18:58

__etc, где я не прав?
Код AS3:

var spr1:Sprite = new Sprite();
var spr2:Sprite = new Sprite();
addChild(spr1);
addChild(spr2);
 
var i:uint;
 
var t:uint = getTimer();
for (i=0; i< 1e6; i++){
        addChild(spr2);
        addChild(spr1);
}
trace (getTimer()-t); //542
 
addChild(spr1);
addChild(spr2);
 
t = getTimer();
 
for (i=0; i< 1e6; i++){
        swapChildrenAt(getChildIndex(spr2), numChildren-1);
        swapChildrenAt(getChildIndex(spr1), numChildren-1);
}
trace (getTimer()- t); //1170


BlooDHounD 01.12.2008 19:01

я думаю, что Денис имел ввиду, что Вы должны перестать забивать шурупы микроскопом, когда в руках можно держать setChildIndex, а не использовать конструкции типа swapChildrenAt или addChild. к тоже они действительно медленнее.

s8000_1 01.12.2008 19:05

BlooDHounD, ок, еще 1 вариант =\
Код AS3:

t = getTimer();
for (i=0; i< 1e6; i++){
        setChildIndex(spr2, numChildren-1);
        setChildIndex(spr1, numChildren-1);
}
trace (getTimer()- t); //775


etc 01.12.2008 19:20

s8000_1, я имел ввиду, что неправда в том, что события будут.

s8000_1 01.12.2008 19:30

__etc, и правда...
Сорри, с чем-то попутал. Был у меня однажды какой-то косяк именно из-за того, что я addChild использовал для поднятия наверх - как-то это было с событиями связано :)


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

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