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

Dip52 22.08.2012 20:36

Количество слоёв на сцене
 
Можно ли посредством ActionScript 3 узнать какое количество слоёв находится на сцене? Есть одно приложение, где есть фоновые (вторичные) и первичные объекты. В каждом из них по несколько слоёв, но их так много, что на счёт уходит довольно-таки много времени. Спасибо.

illuzor 22.08.2012 21:03

Слои - "искусственное" понятие, придуманное для удобства визуального редактирования.
Есть уровни. Количество объектов(и следовально уровней) можно узнать через свойство numChildren

Dip52 22.08.2012 21:37

Цитата:

Сообщение от illuzor (Сообщение 1093340)
Слои - "искусственное" понятие, придуманное для удобства визуального редактирования.
Есть уровни. Количество объектов(и следовально уровней) можно узнать через свойство numChildren

Представьте, что на сцене есть три объекта: два MovieClip, один обычный без преобразования. По стандарту, если они все находятся на одном слое, то они так и так будут выше (покрывать) объекта без преобразований. Допустим, что эти два объекта MovieClip содержат по два слоя, что есть уже четыре слоя и плюс один объект, это один, в итоге пять. Как мне можно придти к этому выводу используя ActionScript 3? (Чтобы, например, сделать все объекты MovieClip ниже по уровню, чем объект без преобразований) Точнее: "возможно ли такое, используя ActionScript?". Я надеюсь, что объяснил доходчиво, но не уверен.

illuzor 22.08.2012 21:54

Цитата:

Как мне можно придти к этому выводу используя ActionScript 3?
Пройтись рекурсивной функцией и потрейсить.
Только опять же, не слои, а уровни. А они существуют только когда там существует какой-нибудь DisplayObject

PainKiller 23.08.2012 12:59

я лично такую функцию использую, для отладки полезно иногда бывает:
Код AS3:

package utils
{
 
        import flash.display.*;
 
                /**
                * Трейсит переданный DisplayObjectContainer на наличие детей. Выводит индексы детей.
                * @param        item - DisplayObjectContainer дисплей лист которого необходимо оттрейсить
                * @return void
                */

 
                public function traceDisplayList(item:DisplayObjectContainer):void
                {
                        for (var i:Number = 0; i < item.numChildren; i++)
                        {
                                trace ("i = " + i + " " + item.getChildAt(i));
                        }
                }
 
}

соответственно если надо посмотреть "уровни" всей флешки, передаете в функцию корневой контейнер и все.

Koopa 24.08.2012 21:13

Для сцены: stage.numChildren
Внутри каждого муви свои слои и свой stage.

Anton Riot 24.08.2012 23:28

Если топикстартер хочет посчитать именно слои, то, возможно, это получится сделать с помощью jsfl?


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

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