Функция системы слоев в моем приложении AS3 flash - PullRequest
0 голосов
/ 16 сентября 2011

Я разрабатываю функцию системы слоев для моего приложения Flash (AS3 + Flash CS5).Цель состоит в том, чтобы создать систему, подобную Photoshop, в которой элементы принадлежат слою.Эти разные слои могут быть скрыты или заблокированы (чтобы избежать перемещения элементов).

Я хочу создать MovieClip (с базовым классом, называемым «Слой») и связать его с другим MovieClip.

Что-то вродеthis:

example

Это должно быть составлено из большего количества MovieClips: eye (для управления видимостью слоя), name (для разрешения динамических изменений имени) и lock (для блокировки элементов внутри слоя).

Как я могу ссылаться на эти разные мувиклипы в моем базовом классе «Слой»?Или как я могу рассмотреть мой дизайн, чтобы позволить такое поведение?

Есть ли другой или лучший способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 16 сентября 2011

Единственный способ оптимально сделать это, о котором я могу думать прямо сейчас, - это иметь два класса. Класс "Layer", который имеет все "рисунки". это может быть только мувиклип (или класс, расширяющий мувиклип). Затем у вас есть «LayerInfo», который имеет визуальный аспект, который вы показываете на изображении. Этот класс также расширяет MovieClip, но имеет переменную, назовем ее visualLayer, которая является ссылкой на слой на сцене.

Таким образом, в основном, когда вы нажимаете кнопку «Новый слой», вы создаете два объекта: слой чертежа и объект LayerInfo. затем, если можно просто иметь открытый метод hideLayer для включения и выключения слоя. Это будет примерно так:

public function togleLayerVisibility():void{
    this.visualLayer.visible = !this.visualLayer.visible;
    //optional, you can make the eye different as well
    //this.eye.togleVisual();
}

Таким же образом вы можете делать другие вещи на VisualLayer.

...