|
|
|||||
LoadMovie
Есть вопрос: если я подгружаю динамически через лоадМуви несколько картинок в мувиклип и программно дублирую его, то картинки внутри не дублируются... Как поступить в этом случае? А еще: если я всё же буду каждый раз по одному и тому же URL загружать одну и ту же картинку, будет ли она доставаться из кеша или каждый раз будет подгружаться?
|
|
|||||
Модрон-ветеринар
|
После загрузки отрисуйте картинку в битмапу, и в процессе дублирования мувиков отрисовывайте этой битмапой получаемые при дублировании мувики.
И не используйте LoadMovie, используйте MovieClipLoader, иначе будут ошибки, разбираться с которыми никому не захочется. Ответ на второй опрос - в другой теме, которую нужно создать. |
|
|||||
2mooncar: Честно говоря, я ни разу так не делал... Не могли бы вы объяснить в 2х словах как отрисовать картинку в битмапу или сказать где об этом можно почитать? А за кусок кода был бы весьма благодарен. С уважением
|
|
|||||
Модрон-ветеринар
|
Для начала перепишите ваш код под MovieClipLoader.
Насчет BitmapData - вот кусок из рабочего кода: import flash.display.BitmapData; var EVENTSBITMAP:Array = new Array(); //массив фото //Этот блок должен у вас идти внутри метода onLoadInit (который даст гарантированную загрузку) //Создаем битмапу на основе картинки, которая внутри traget_mc: var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false); myImg.draw(target_mc); EVENTSBITMAP[1] = myImg; //Сохраняем изображение в массив Поскольку это кусок из рабочего кода, упрощать и обобщать я ничего не стал, вам обязательно нужно открыть хелп, и посмотреть синтаксисы. |
|
|||||
Огромнейшее СПАСИБО. Буду разбираться
Добавлено через 18 минут Что-то не то... import flash.display.BitmapData; var EVENTSBITMAP:Array = new Array(); var loader:MovieClipLoader = new MovieClipLoader (); loader.addListener (this); this.onLoadInit = function () { //trace ("Загрузили!"); var myImg:BitmapData = new BitmapData(_root.mc._width, _root.mc._height, false); myImg.draw(_root.mc); EVENTSBITMAP[1] = myImg; }; loader.loadClip ("1.jpg", _root.mc); duplicateMovieClip(_root.mc, "mc"+2, 255); _root.mc2.attachBitmap(EVENTSBITMAP[1], 0); _root.mc2._x = 5; _root.mc2._Y = 5; |
|
|||||
Модрон-ветеринар
|
Навскидку скажу - дублировать (и вообще все операции стартовать) тоже нужно по готовности загрузки и получения битмап-данных.
Еще ошибка - у вас аргумент target отсутствует в onLoadInit. Добавлено через 5 минут Опечатка _Y вместо _y Последний раз редактировалось mooncar; 23.12.2009 в 13:10. |
|
|||||
Мувиклип копируется но битмапа в нем не отрисовывается... Даже если сделать так...
import flash.display.BitmapData; var EVENTSBITMAP:Array = new Array(); var loader:MovieClipLoader = new MovieClipLoader (); loader.addListener (this); this.onLoadInit = function () { //trace ("Загрузили!"); var myImg:BitmapData = new BitmapData(_root.mc._width, _root.mc._height, false); myImg.draw(_root.mc); EVENTSBITMAP[1] = myImg; duplicateMovieClip(_root.mc, "mc"+2, 255); _root.mc2.attachBitmap(EVENTSBITMAP[1], 0); _root.mc2._x = 5; _root.mc2._Y = 5; }; loader.loadClip ("1.jpg", _root.mc); |
|
|||||
Модрон-ветеринар
|
Либо ошибка при использовании метода duplicateMovieClip, либо ошибка при использовании одноименной функции.
Погодите, вообщем, сейчас попробую причесать. Добавлено через 12 минут import flash.display.BitmapData; var EVENTSBITMAP:Array = new Array(); function duplicate (item:MovieClip) { _root.createEmptyMovieClip('mc' + 2, _root.getNextHighestDepth()); _root.mc2.attachBitmap(EVENTSBITMAP[1], 0); _root.mc2._x = 5; _root.mc2._y = 5; } var EVENTSBITMAP:Array = new Array(); var loader:MovieClipLoader = new MovieClipLoader (); loader.addListener (this); this.onLoadInit = function (target_mc:MovieClip) { var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false); myImg.draw(target_mc); EVENTSBITMAP[1] = myImg; duplicate (target_mc); } loader.loadClip ('1.jpg', _root.mc); |
|
|||||
2 mooncar: я пока успел лишь заменить ваш код на свой и все заработало. Сейчас всё разложу по полочкам. Хочу лишь сказать что я преисполнен благодарностью, Вы уже не в первый раз мне помогаете. Огромное Вам спасибо! С уважением
|
|
|||||
Модрон-ветеринар
|
Если несколько:
import flash.display.BitmapData; var EVENTSBITMAP:Array = new Array(); var count:Number = 1; function duplicate (item:MovieClip) { _root.createEmptyMovieClip('mc' + count, _root.getNextHighestDepth()); _root.mc2.attachBitmap(EVENTSBITMAP[count], 0); _root.mc2._x = 5; //что-то с использованием count _root.mc2._y = 5; } var EVENTSBITMAP:Array = new Array(); var loader:MovieClipLoader = new MovieClipLoader (); loader.addListener (this); this.onLoadInit = function (target_mc:MovieClip) { count++; var myImg:BitmapData = new BitmapData(target_mc._width, target_mc._height, false); myImg.draw(target_mc); EVENTSBITMAP[count] = myImg; duplicate (target_mc); } //если несколько, то меняем count тут , а не в onLoadInit и меняем контейнер для загрузки loader.loadClip (count + '.jpg', _root.mc); Последний раз редактировалось mooncar; 23.12.2009 в 13:36. |
Часовой пояс GMT +4, время: 08:22. |
|
« Предыдущая тема | Следующая тема » |
|
|