Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.12.2010, 18:12
Nachalo вне форума Посмотреть профиль Отправить личное сообщение для Nachalo Найти все сообщения от Nachalo
  № 1  
Ответить с цитированием
Nachalo

Регистрация: Mar 2009
Сообщений: 24
По умолчанию Всплытие клипа на поверхность

Всем привет!
Возник вопрос с глубиной клипов в AS3.
В AS2 всё было просто, написал вот так:
Код AS1/AS2:
mx.behaviors.DepthControl.bringToFront(мой_клип);
и "мой_клип" сразу наверху без каких-либо привязок к другим клипам на сцене!

А что делать в AS3?
Допустим создал я клип и прописал его на сцену:

Код AS3:
container.addChild(мой_клип);
addChild(container)
Можно ли что-то написать одной строкой (или не одной) чтобы "мой_клип" всплыл на поверхность вне зависимости и привязки к другим имеющимся на сцене контейнерам и чилдам?

Может кто знае хитрый код? Или всё-таки придется "городить огород" со всякого рода addChildAt getChildIndex и т.д. и т.п.

Старый 07.12.2010, 18:29
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
опять addChild(). Поставит клип на самый верх. Вообще addChild убирает клип из одного контейнера, если он уже был в нем и помещает в текущий. Если целевой контейер и родительский совпадают - то получается, что переносит его просто наверх.

Кстати, в вашем коде так и так клип в контейнере на самом верху (не важно, что там было), а сам контейнер так же в самом верху того контейнера, куда его положили.

Старый 07.12.2010, 18:38
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 3  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
setChildIndex

Старый 07.12.2010, 18:53
Nachalo вне форума Посмотреть профиль Отправить личное сообщение для Nachalo Найти все сообщения от Nachalo
  № 4  
Ответить с цитированием
Nachalo

Регистрация: Mar 2009
Сообщений: 24
Цитата:
Сообщение от Hidest Посмотреть сообщение
опять addChild(). Поставит клип на самый верх. Вообще addChild убирает клип из одного контейнера, если он уже был в нем и помещает в текущий. Если целевой контейер и родительский совпадают - то получается, что переносит его просто наверх.

Кстати, в вашем коде так и так клип в контейнере на самом верху (не важно, что там было), а сам контейнер так же в самом верху того контейнера, куда его положили.
Не всё так просто... или я чего-то не понимаю. Объясню подробней. Есть код который написал не я (и не знаю кто). Просто обучаюсь на данном примере. Так вот в этом коде кроме клипа "мой_клип" куча всяких других. И поднять "мой_клип" на поверхность с помощью того, что я пробовал(addChildAt getChildIndex и т.д. и т.п.) не получается. Поэтому и возник вопрос, есть ли способ поднять "мой_клип" по аналогии с AS2(см.выше), вне зависимости и привязки к другим имеющимся на сцене контейнерам и чилдам.


Последний раз редактировалось Nachalo; 07.12.2010 в 19:02.
Старый 07.12.2010, 19:03
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 5  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Приведите пример кода... Немного все сумбурно, особенно относительно того, сколько там у вас контейнеров и какие уровни вложенности... Опять же, если много несвязанных контейнеров навалено, и ваш клип должен быть помещен в какой-то контейнер, находящийся в куче, то надо перемещать сам контейнер уже наверх... Почитайте получше о строении дисплей листа, станет понятнее.

Старый 07.12.2010, 19:55
Nachalo вне форума Посмотреть профиль Отправить личное сообщение для Nachalo Найти все сообщения от Nachalo
  № 6  
Ответить с цитированием
Nachalo

Регистрация: Mar 2009
Сообщений: 24
Цитата:
Сообщение от Hidest Посмотреть сообщение
Приведите пример кода... Немного все сумбурно, особенно относительно того, сколько там у вас контейнеров и какие уровни вложенности... Опять же, если много несвязанных контейнеров навалено, и ваш клип должен быть помещен в какой-то контейнер, находящийся в куче, то надо перемещать сам контейнер уже наверх... Почитайте получше о строении дисплей листа, станет понятнее.
Весь код сюда не уместился, а кусок ничего не даст, поэтому запаковал в архив. Кому не лень смотрите. То, что нужно послать вверх находится на строках с 741 по 749.
Вложения
Тип файла: rar Banner.rar (6.1 Кб, 39 просмотров)

Старый 07.12.2010, 20:12
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 7  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Для Flex (код из Алерта):
Код AS3:
var sm:ISystemManager = ISystemManager(Application.application.systemManager);
if (sm.useSWFBridge())
   parent = Sprite(sm.getSandboxRoot());
else
   parent = Sprite(Application.application);
}
 
PopUpManager.addPopUp(target, parent, modal);

Старый 07.12.2010, 21:19
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 8  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Мда.... нефиговый такой "баннер" на 1036 строк кода. Частично код после декомпиляции, не хорошо. Один только Banner.as ничего не даст, так как совершенно не хочется разбираться и компилировать в голове, чтобы понять, чего идет не так и чего вы хотите в итоге добиться. Но вообще, по идее, там создается контейнер и добавляется документ классом в дисплейлист, в него добавляется новый спрайт с программной отиросовкой прямоугольника... Он по идее должен быть на самом верху, если после этого ничего больше не добавляется... С какого места - не важно, важен порядок добавления в целом

Старый 07.12.2010, 21:47
Nachalo вне форума Посмотреть профиль Отправить личное сообщение для Nachalo Найти все сообщения от Nachalo
  № 9  
Ответить с цитированием
Nachalo

Регистрация: Mar 2009
Сообщений: 24
Цитата:
Сообщение от Hidest Посмотреть сообщение
Мда.... нефиговый такой "баннер" на 1036 строк кода. Частично код после декомпиляции, не хорошо. Один только Banner.as ничего не даст, так как совершенно не хочется разбираться и компилировать в голове, чтобы понять, чего идет не так и чего вы хотите в итоге добиться. Но вообще, по идее, там создается контейнер и добавляется документ классом в дисплейлист, в него добавляется новый спрайт с программной отиросовкой прямоугольника... Он по идее должен быть на самом верху, если после этого ничего больше не добавляется... С какого места - не важно, важен порядок добавления в целом
Нет! Код не декомпилирован! А спрайт с программной отрисовкой прямоугольника и есть мой код (или правильнее "мой_клип"),который я вставил и который должен быть наверху. Видимо имена типа _loc_4 и _loc_5 и т.д. сподвинули вас на мысль о декомпиле. Но не в этом дело.
А в том что не хочет этот спрайт быть наверху.
Ладно.Всем спасибо.
Куплю толстую книгу и почитаю.

Старый 08.12.2010, 13:37
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 10  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Да, именно эти имена и сподвигли... Начасто встретишь, чтобы человек добровольно так писал, хотя, конечно, всякое бывает...

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.