Просмотр полной версии : Помогите подгрузить картинку при помощи BitmapData
Tochilin
24.02.2008, 23:50
Привет.
Никак не могу разобраться с BitmapData.
Задача: Подгрузить из XML картинки и расположить их по кругу (типа как на циферблате часов - картинки вместо цифр либо как на рулеке в казино, не важно)
Я сделал подгрузку из XML - и каждую картинку повернул на определённый градус, в зависимости от количестка картинок. Так вот - они естественно при повороте потеряли в качестве и стали с гребенкой. Нужно использовать BitmapData - как?
Напишите плз код - если не трудно - с комментариями...
http://www.flasher.ru/forum/showthread.php?t=103586
Tochilin
25.02.2008, 10:33
Благодарю.
Tochilin
25.02.2008, 13:25
Остался вопросик. Я разобрался как грузится картинка при помощи BitmapData.
Одну картинку подгрузил. Но Мне нужно несколько картинок подгрузить. (ну 3 к примеру, не важно, я буду брать их из XML)
Как мне это сделать.
Вот исходный код. Куда впихнуть цикл?
вот код
import flash.display.BitmapData;
var src:Array = Array("04.jpg", "05.jpg", "06.jpg");
var container:MovieClip=createEmptyMovieClip(container, getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
var loadListener:Object = new Object();
loadListener.onLoadInit = function(target_mc:MovieClip) {
trace(target_mc);
var tmpBmp:BitmapData = new BitmapData (target_mc._width,target_mc._height);
tmpBmp.draw(target_mc);
target_mc.removeMovieClip();
var bmp_mc:MovieClip = createEmptyMovieClip(bmp_mc, getNextHighestDepth());
bmp_mc.attachBitmap(tmpBmp, getNextHighestDepth(), "auto", true);
};
mcLoader.addListener(loadListener);
mcLoader.loadClip(src[0], container);
mcLoader.loadClip(src[0], container); - вот это пихай в цикл
Tochilin
25.02.2008, 13:54
Нет - не получается. Дело в том что у нас вначале создаётся мувик в который грузится картинка var container:MovieClip=createEmptyMovieClip(container, getNextHighestDepth());
а потом он удаляется, при первой же итерации цикла
target_mc.removeMovieClip();
Получается нужно в цикл запихнуть ещё и
var container:MovieClip=createEmptyMovieClip(container, getNextHighestDepth()); Так?
Ваще как мне сделать много мувиков - ну то есть продублировать в цикле что ли, чтобы в итоге все картинки из массива появились на сцене..
а.ну тогда да.Не,ничо дублировать не надо,в параметрах цикла задай сколько у тебя картинок,столько раз и выполняй цикл.
Tochilin
25.02.2008, 14:08
задал в цикле - но проблема не в этом. У меня не будут отображаться ВСЕ картинки, если я не буду создавать НОВЫЕ BitmapData для каждой картинки. Либо новые мувики надо создавать при каждой итерации цикла.
То есть я к тому что проблема не в том сколько раз выполнять цикл - а в том что нужно как то дублировать мувики, чтобы каждая след. подгружаемая картинка отображалась в НОВОМ мувиклипе.
Вот исходник.
ну так правильно,несколько раз создаёшь мувики и задаёшь каждому новое имя и смещение по координатам.Как-то так..
for(i:Number=0;i<3;i++) {
var clip:MovieClip = this.createEmptyMovieClip ("pic_mc"+i,this.getNextHighestDepth());
with(clip){
_x +=10;
}
}
Fernando Costa
25.02.2008, 15:05
не учите человека старому коду
with(clip){
_x +=10;
}==
clip._x +=10;
Tochilin
25.02.2008, 15:18
var clip:MovieClip = this.createEmptyMovieClip ("pic_mc"+i,this.getNextHighestDepth());
А эта строчка означает что с мувике clip - создастся ещё один мувик "pic_mc"+i. Так?
Хорошо - а аттачить BitmapData к чему к "pic_mc"+i??? или в clip???
Блин - я уже запутался - никто не мог бы подправить мой исходник?
Исходник
Подправить не могу,потому как на работе,у меня тут своих исходников завались :)
это значит,что создаются мувики "pic_mc1","pic_mc2" и т.д..до i.
clip - это переменная типа MovieClip .
аттачить надо туда.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.