Статьи

Совет: управление глубиной с помощью списка отображения в AS3

Перемещение элементов вверх и вниз по списку отображения может быть очень полезным при разработке игр и приложений. Научитесь легко управлять глубиной, используя эту подсказку.


Давайте посмотрим на конечный результат, к которому мы будем стремиться:

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


Используя ActionScript 3, мы научимся управлять верхним, нижним и промежуточным уровнями глубины.


Запустите Flash и создайте новый Flash-документ, установите размер сцены 320x200px и частоту кадров 24fps.


Это интерфейс, который мы будем использовать, ряд кнопок на стадии, которые активируют изменение глубины.

Преобразуйте символы в кнопку и назовите логотипы Tuts + следующим образом: nt, at, pt . Для других кнопок имена экземпляров — bottomB и oneB .


Создайте новый класс ActionScript (Cmd + N), сохраните файл как Main.as и напишите следующие строки, пожалуйста, прочитайте комментарии в коде, чтобы полностью понять поведение класса.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.filters.GlowFilter;
 
    public final class Main extends Sprite
    {
        private var lastItem:Sprite;
        private var glow:GlowFilter = new GlowFilter(0xFF9900);// a glow filter to highlight the last item
         
        public final function Main():void
        {
            lastItem = nt;
            addListeners();
        }
         
        private final function addListeners():void
        {
            at.addEventListener(MouseEvent.MOUSE_DOWN, up);
            pt.addEventListener(MouseEvent.MOUSE_DOWN, up);
            nt.addEventListener(MouseEvent.MOUSE_DOWN, up);
             
            oneB.addEventListener(MouseEvent.MOUSE_UP, downOne);
            bottomB.addEventListener(MouseEvent.MOUSE_UP, bottom);
        }
         
        private final function up(e:MouseEvent):void
        {
            lastItem.filters = [];
            lastItem = e.target as Sprite;
            lastItem.filters = [glow];
            setChildIndex(lastItem, numChildren — 1);//get next highest depth
        }
         
        private final function downOne(e:MouseEvent):void
        {
            if(getChildIndex(lastItem) != 0)//prevent out of bounds
            {
                setChildIndex(lastItem, getChildIndex(lastItem) — 1);//down one level
            }
        }
         
        private final function bottom(e:MouseEvent):void
        {
            setChildIndex(lastItem, 0);//bottom
        }
    }
}

Добавьте имя класса в поле « Класс» в разделе « Публикация » на панели « Свойства», чтобы связать FLA с классом основного документа .


Используйте то, что вы узнали из этой подсказки, в своих играх и приложениях!

Надеюсь, вам понравился этот Quick Tip, спасибо за чтение!