Нарисуйте спрайты между слоями - PullRequest
2 голосов
/ 10 августа 2011

Можно ли нарисовать спрайт в мувиклипе на определенном слое?

У меня есть MC, созданный мной во Flash дизайнере, и на нем 3 слоя, фон, некоторые элементы макета, а затем немного текста.В ActionScript я создал объект Sprite в коде, нарисовал прямоугольник и добавил его на сцену с помощью addChild (вызывается из MC)

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

Есть ли способ добавить спрайт в MC на определенном слое?В этом случае фоновый слой.

Я попытался изменить z на спрайте, но без эффекта.

Ответы [ 3 ]

2 голосов
/ 10 августа 2011

Изменение "z" было хорошей попыткой, но оно ничего не даст.

На самом деле, все видеоклипы располагаются в определенном порядке. Когда там нарисовано, это делается в таком порядке, как художник, покрывающий графику новым. Изменение значения «z» изменит воспринимаемую глубину этого фрагмента ролика, но не изменит порядок рисования фрагментов ролика. Так как ваш спрайт находится поверх всего фрагмента ролика, он всегда будет последним, который будет нарисован, даже если вы измените «z».

«Слои» фактически не существуют при работе с ActionScript. Эта концепция доступна только через Flash Professional. В конце концов Flash Professional преобразует свои слои в запросы addChild ().

Таким образом, вы можете поместить свой новый мувиклип с помощью метода addChildAt (). При значении индекса 0 новый фрагмент ролика будет отображаться ниже всех остальных фрагментов ролика, а не сверху.

Необходимо найти индекс справочного фрагмента ролика (например, указав ему имя экземпляра в Flash Pro, «reference»), чтобы вы могли получить его индекс с помощью «getChildIndex (reference)». Затем вы можете установить новый видеоклип сверху или снизу этого индекса с помощью addChildAt (). Если вы установите тот же индекс, что и для справочного ролика, он будет ниже него.

Другой метод может заключаться в создании своего рода фиктивного клипа («фиктивный»), который вы устанавливаете в слое во Flash Professional, а затем вы добавляете новый клип в этот фиктивный мувиклип с помощью «dummy.addChild () ».

Если вы хотите перегруппировать несколько графических изображений с помощью ActionScript в один «слой», чтобы легко перемещать группу вверх или вниз в списке отображения с помощью addChildAt (), вы можете добавить их в объект Sprite, а затем переместить Sprite.

1 голос
/ 10 августа 2011

Преобразуйте необходимые объекты на сцене в видеоклипы.Эти мувиклипы могут быть на разных слоях.Затем используйте функции setChildIndex (), swapChildrenAt () и getChildIndex () для достижения необходимого эффекта.Я могу прокомментировать больше, если вы покажете мне код.Более подробную информацию о функциях можно найти на

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html

Также посмотрите на http://www.flashandmath.com/intermediate/depths/index.html

0 голосов
/ 10 августа 2011

использовать addChildAt (спрайт, индекс);объект с этим индексом поднимется на один уровень вверх.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...