Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Динамическое перемещение объектов во Flash-e
Flash Zone Forum > Macromedia Flash > ActionScript
Antoxer_92
Помогите пожалуйста!!!

И так сначала опишу задачу и проблему:

Мне нужно чтобы один объект лег по верх другого(например при нажатии кнопки). Эти два объекта(к примеру MovieClip-ы) уже были созданы динамически.

При динамическом создании первого объекта(MovieClip1), он ложится поверх всех объектов на сцене. Соответственно при создании второго объекта(MovieClip2) он тоже ложиться по верх всех объектов на сцене в том числе и поверх первого объекта(MovieClip1). Нужно что бы после всего этого при нажатии кнопочки MovieClip1 лег поверх MovieClip2 причём оба объекта должны отображаца, т.е. просто один накрывает часть другого!!!
Сам вопрос:

Есть ли какой нить метод или св-во, чтобы изменять наложение объектов?

Мне всего то надо при нажатии кнопочки переместить уже ранее динамическисозданный объект поверх всех остальных.
MustLive
Цитата
Наложение одного объекта по верх другого динамичемки

Antoxer_92

Во флеше есть возможность динамического наложения объектов друг на друга. Для этого нужно изменять параметр глубины (например, меняя глубины двух объектов).

Цитата
Есть ли какой нить метод или св-во, чтобы изменять наложение объектов?

Конечно есть. Что говорит по этому поводу хелп по флешу и наш форум (где мы уже эту тему обсуждали)? А говорит он то wink.gif, что нужно использовать swapDepths(). Синтаксис следующий (два варианта использования):
Код
mc1.swapDepths(100);
mc1.swapDepths(mc2);
Antoxer_92
MustLive, Спасибо за инфо. Я в яндексе искал уже но незнал что вводить туда конкретно, соответственно ничего и не нашел!!!

Попробывал я использовать данный метод с двумя мувиклипами(а с объектом видео данный метод вообще нельзя использовать), но флэш выдал ошибку:

Warning: 1060: Migration issue: The method swapDepths is no longer supported. Use DisplayObjectContainer.parent.setChildIndex instead. For more information, see the DisplayObjectContainer class, which is extended by MovieClip..

Флэш пишет что данный метод не поддерживается. И пишет что, для более подробной информации см. DisplayObjectContainer.

Погуглил и вот что я нашёл:

swapChildren(child1:DisplayObject, child2:DisplayObject):void - Данный метод меняет местами (в порядке "с верху  в низ") два заданных дочерних объекта.
Т.е. тот объект окажется снизу, кот до этого лежал выше.

getChildIndex(child:DisplayObject):int - Возвращает позицию индекса для дочернего экземпляра DisplayObject.

setChildIndex(child:DisplayObject, index:int):void - Изменяет положение существующего потомка в DisplayObjectContainer

Что хорошо данные методы работают со всеми объектам  DisplayObject в т.ч. и с объектом video.

Вот инфа для справки -
здесь все методы и свойства, применяемые к объектам DisplayObject .

Надеюсь тему не удалят, кому нибудь точно пригодится.

Метод swapDepths() видимо устарел или как мне кажется(использовался AS 2.0).


MustLive, ещё раз спасибо. Я уж думал этого вообще не реализованно во флэше.
MustLive
Antoxer_92, всегда пожалуйста.

DisplayObjectContainer появился только в AS3. Поэтому вышеописанный метод, что ты нашёл, подходит лишь для AS3.

Цитата
Метод swapDepths() видимо устарел или как мне кажется(использовался AS 2.0).

Этот метод, который был ещё с Flash 5.0, устарел лишь для AS3, а для AS1/AS2 он в самый раз wink.gif. В третьей версии AS многие методы языка "устарели", т.к. их заменили на новые (поэтому Флеш редактор и предупреждает о таких случаях, когда используется AS 3.0).
Русская версия IP.Board © 2001-2013 IPS, Inc.