Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Дублирование и перемещение в слоях (http://www.flasher.ru/forum/showthread.php?t=152561)

deman455 19.03.2011 20:15

Дублирование и перемещение в слоях
 
При дублировании клипа, клип попадает в тот же слой, в котором и был исходный клип. Можно ли каким то образом полностью изменить путь дублирования, и поместить его в другой слой?

mooncar 19.03.2011 22:08

Нет, это невозможно - "слоев" в скомпилированном ролике нет, они есть только в среде разработки, то есть во Adobe Flash.
Есть только глубины. А глубину мы указываем при создании дубля.

udaaff 19.03.2011 22:15

Автор, видимо, имеет в виду смену родителя. Это невозможно.

xSx 21.03.2011 20:38

this.swapDepths(переменная от которой зависит переброс на слой);

mooncar 21.03.2011 20:42

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

dark256 21.03.2011 23:21

duplicateMovieClip это вообще лишняя команда, кидалово и путаница.

mooncar 21.03.2011 23:29

Цитата:

Сообщение от dark256 (Сообщение 982588)
duplicateMovieClip это вообще лишняя команда, кидалово и путаница.

Метод duplicateMovieClip? Ну, ты не прав, attachMovie не всегда подходит.
Хотя у меня за последний год нигде не использовался :) Но факт.

deman455 22.03.2011 03:25

Нужно было, наверно, описать суть моей проблемы (вопроса). Есть приложение, в него загружено 20 картинок. При нажатие на разные кнопки, появляются разные лкна, а в них картинки (точнее, как бы хотелось, при открытие окна, окно лишь получает ID картинки, которую нужно поместить в окно. Это вместо того что бы в каждое окно пихать по 20 картинок и делать видимым лишь ту, которая нужна). Конечно, как вариант, загрузить картинки на хост, и подгружать картинки из хоста, при этом окну передавая лишь ссылку на картинку. Но в этом случае, если у человека нету интернета, значит и подгружать картинки приложение не сможет. Какой есть выход с положения?

mooncar 22.03.2011 03:44

Я эту задачу решал и решаю так.

1. В индивидуальные, создаваемые на лету невидимые мувики, загружаются картинки. С них по onLoadInit делается слепок в BitmapData, которые заносятся для удобства в массив. Всё это действо происходит на этапе предзагрузчика, прогресс этой загрузки добавляется бонусом к основному расчету прогресса загрузки ролика.
2. После загрузки каждый мувик тут же удаляется, он более не нужен.
3. При необходимости (клике куда нужно, например по кнопке с нужным номером) нужная битмапа аттачится из массива битмап в какой-то один мувик-контейнер на сцене или куда бывает нужно.

Решение ресурсоёмко с т.зрения использования ОЗУ клиентской машины (хранение битмапы), да и процессор нагружается чуть больше обычного при отрисовке в битмапу, но при небольшом количестве картинок вполне приемлемо.

alexcon314 22.03.2011 08:41

а как ваше приложение попадает к пользователю на компьютер? Не через интернет? Это браузерное приложение или нет? И что за окна такие масдайные? Это реально отдельные окна, или просто имитация во флеше?
И главное, причем тут дублирование клипа в "другой слой"?

deman455 22.03.2011 18:37

alexcon314, приложение - интернет. Допустим ситуацию, сервер на котором хранятся картинки недоступен, получается, картинок не будет видно. Игра браузерная, окна флешовые (8-й пост почитайте). На счет дублирования, каждый клип - картинка. При открытие Флеш окана в Флеше, нужная картинка (не имеет значение какая) должна появиться в этом окне. Таких окон, 20. Что бы не вставлять в каждое окно по 20 картинок, а потом по id делать нужную мне видимой, ищу другие варианты решения данного задания. С битмапом, конечно, интересно, но тяжело это все будет. Еще и + ОЗУ будет пожирать. Неужели больше вариантов нету?

dark256 22.03.2011 19:00

Если картинок всего 20, то пихаем их тупо в FLA, компилим, и далее картинки юзаем по их linkageId примерно так:

Код AS1/AS2:

function getBitMap( mov:MovieClip, linkageId:String ){
        var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId)
        mov.attachBitmap(myBitmapData, 10)
        //mov.forceSmoothing = true
        //return myBitmapData
}

mov в параметре - тот клип, куда картинку надо воткнуть.
Битмапдату можно гонять между разной степени вложенности-подгруженности роликами, ей слава богу начхать на sandbox.

Если картинки и функция лежат на основном клипе, то подгруженные могут тащить в себя картинки как-то так:

_level0.getBitMap( this.Clip,"Ball1.png")

И наоборот. Если картинки в подгружаемой либе, то осн. ролик обращается за картинкой как

name_of_loaded_movieClip.getBitMap( Clip,"Ball1.png")

Во. Так лучше? :)


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

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