2013-05-05 2 views
0

Мне было интересно, что было лучшим способом изменить слоирование объектов во Flash? Мой проект состоит в основном из небольших отдельных клипов. Я хочу лучше организовать свои объекты в слои, чтобы один набор мувиклипов мог отображаться над другим в заданное время без каких-либо конфликтов. Любые советы о том, как это сделать, были бы замечательными.Укладка объектов во Flash

EDIT: Получение ошибки со следующим:

import flash.display.MovieClip; 
import flash.display.Sprite; 
import flash.display.DisplayObject; 
import flash.events.Event; 
import flash.events.MouseEvent; 

var backgroundLayer:Sprite = new Sprite; 
backgroundLayer.name = "backgroundLayer"; 

var gameLayer:Sprite = new Sprite; 
gameLayer.name = "gameLayer"; 

var menuLayer:Sprite = new Sprite; 
menuLayer.name = "menuLayer"; 

public function Main() 
{ 
    addChild(backgroundLayer); 
    addChild(gameLayer); 
    addChild(menuLayer); 

Ошибки:

1120: Access of undefined property backgroundLayer. 
1120: Access of undefined property gameLayer. 
1120: Access of undefined property menuLayer. 

Спасибо.

+0

http://stackoverflow.com/questions/15855551/how-to-fix-overlapping-objects-on-the-stage-in-as3/15856962#15856962 - этот ответ должен помочь вам. – prototypical

+0

Спасибо. Я получаю ошибки при попытке объявить слои как переменные. Обновленный вопрос, чтобы показать это. – Liam

+0

Вы не можете определить имя этих слоев в объявлениях, поместите назначения имен в свой конструктор. Кроме того, почему вы их называете? У вас есть переменная с именем menuLayer, которую вы можете использовать. – prototypical

ответ

0

Возможно, самый простой способ сделать это - создать иерархию DisplayObjectContainer s или ее подклассы. (Sprite, MovieClip и т. Д.). После того, как они будут добавлены на сцену в правильном порядке, любые дети из этих контейнеров будут «внутри» слоя контейнера.

Чтобы переместить объект между этими слоями в коде, вам нужно только oldLayer.removeChild(thing); newLayer.addChild(thing);.

Независимо от того, является ли это «лучшим» способом сделать это, зависит от того, что вы делаете, но это способ, которым я занимался в прошлом.

+0

По сути, я хочу найти лучший способ показать свое меню, не мешая другим предметам (игра - игра, в которой НЛО произвольно сгенерированы, и вам нужно щелкнуть по ним, чтобы стрелять в них и набрать очки), но поскольку у меня есть таймеры и еще что-то в игре, НЛО продолжали перекрывать меню и показывать поверх него. Большинство объектов в моей игре являются мувиклипами, поэтому при создании иерархии DisplayObjectContainer следует использовать подклассы MovieClip или это не имеет большого значения? – Liam

+0

Если класс наследуется от 'DisplayObjectContainer' в любом месте по цепочке, это означает, что он может содержать другие' DisplayObject'. Так что да, вы могли бы использовать MovieClip под названием «gameLayer» или что-то, что вы можете добавить. Включите свои НЛО. – 31eee384

Смежные вопросы