![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Объясню суть вопроса.
Есть мувиклип mc_image, который принадлежит одному родительскому мувиклипу mc_canvas1, а также есть еще один мувиклип mc_canvas2, без всяких подчиненных мувиклипов: mc_canvas1.mc_image mc_canvas2 Нужно: Задача 1. Переместить мувиклип от одного родительского мувиклипа к другому, после чего - в первом родителе больше не существует подчиненного мувиклипа, а во втором он есть: mc_canvas1 mc_canvas2.mc_image Задача 2. Скопировать мувиклип из одного родительского мувиклипа в другой, чтобы в результате получились физически разные мувиклипы и чтобы не было так, чтобы один просто ссылался на другого: mc_canvas1.mc_image mc_canvas2.mc_image Замечания: 1. дублирование методом duplicateMovieClip() не решает задачи, так как сдублированный мувиклип принадлежит тому же родителю, как и мувиклип-оригинал, и его все равно надо как-то переместить. 2. если записать mc_canvas2.mc_image = mc_canvas1.mc_image, то мы получим ситуацию, когда оба мувиклипа mc_image разных родителей есть физически один и тот же, просто один ссылается на другого. Это следствие того, что объекты MovieClip являются ссылочными типами данных. Как эти задачи можно решить? |
|
|||||
|
4AM Games
|
1)Перемещать мувики из одного родителя в другой не возможно
как вариант можно эммулировать это путем удаления\аттача мувика. 2) аналогично, копировать можно только в пределах одного родителя юзай removeMovieClip\attachMovie
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Аттач не катит, так как мувиклип mc_image в данном случае не из библиотеки берется, он создается программно и в него загружается ролик (или jpeg-картинка) из внешнего файла. В проекте нужно чтобы в другом месте, в другом мувиклипе создавалась его копия, при этом не приходилось повторно грузить из сервера на клиент. А также есть ситуации, где этот мувиклип нужно перемещать.
Т.е. суть в том, чтобы загрузить ролик из файла один раз, и была возможность делать его копию в другом мувиклипе, а также перемещать в другой мувиклип. Последний раз редактировалось Danilishin; 25.05.2006 в 19:14. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 588
|
По умолчанию всё загруженное кэшируется, поэтому загрузивши фотку один раз, ты можешь безболезненно(читай - без повторной загрузки) грузить(простите за тафталогию) её ещё раз. Я так поступал, когда делал галерею, грузил полноразмерные фотки, затем задавал меньшие размеры, получалось это все в виде иконок, нажав на которые вызывалась повторная загрузка фотографий, но так как они в кэше, то они ессесно отображались сразу без загрузки.
Но если кэширование так критично, то можно воспользоваться Bitmap, насколько мне известно, он может дублировать изображения. |
|
|||||
|
Если мувики создаются полность программно, то можно сделать класс-обертку для мувиклипа, который бы хранил все свойства мувика (ширину, длину, прозрачность и т.д.) и мог бы аттачить к себе себеподобных. А картинки можно кэшировать при помощи BitmapData, что не перезагружать по нескольку раз.
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже! |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
А что такое Bitmap и BitmapData? Это есть в ActionScript 2.0, или это появилось в третей версии языка? Во второй версии искал, но не нашел.
|
|
|||||
|
BitmapData - доступен, начиная с флеш 8. Класс позволяет хранить картинки в памяти, "рисовать" их на мувиклипе, изменять попиксельно, накладывать фильтры.
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже! Последний раз редактировалось Nirth; 27.05.2006 в 09:10. |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
А, понятно, у меня седьмой флеш, потому и не нашел
![]() |
|
|||||
|
4AM Games
|
единственное что.
при настройках ActionScript 1.0 import не воспринимается тоесть код import flash.display.BitmapData
createEmptyMovieClip("mc",1).attachBitmap(new BitmapData(200,200,false,0xFF6600),2,"auto",true);
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|