![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Надо сделать некую предзагрузку картинок. Можно ли каким-то образом отобразить содержимое, к примеру, m1 на мувике display? Либо надо для отображения каждый мувик присоединять к _root, ставить на нужное место и менять _visible? Не хочется совершать лишние телодвижения.
|
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Не очень ясна задача. Предзагрузку сделать не проблема. Позиционировать тоже. Но что значит "отображать m1 на мувике display" -- ? Поместить внутрь него нельзя -- только загружать в заранее соданный в нем.
К слову говоря, в AS3 можно любой визуальный объект прицепить любому -- очень удобно ![]() |
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Цитата:
Для хранения загруженных объектов в памяти можно использовать 2 массива - массив строк для текста и массив мувиков для картинок. Если при отображении объекта для массива текста всё ясно, то для массива мувиков не совсем... Можно: 1) создать n мувиков, используя createEmptyMovieClip(), выставить им _visible = false, загрузить в них картинки, и при отображении прятать предыдущий мувик, вычислять и выставлять следующему мувику правильные координаты (ибо они постоянно динамически изменяются), показывать его. 2) (то, что я коряво пытался объяснить в первом посте) объявить n мувиков, загрузить в них требуемые картинки, создать один мувик привязанный к какой-то шкале, который сам будет следить и передвигаться в нужные координаты, и при отображении - копировать/переносить/ещечтото мувик с картинкой из памяти в отображаемый мувик Если (1) реализуемо, но не очень красиво, то на счет реализуемости (2)-ого я сомневаюсь. Я не флешер, поэтому возможно запутался в каких-то элементарных вещах, отсюда и вопрос. |
|
|||||
|
если для 8-ки и подгружаем только изображения, то можно такой подход:
-грузим во временные мувики картинки из переданного массива урлов -изображение копируем в BitmapData,кладем ссылку в массив, мувики удаляем -как загрузятся все, вызываем метод onLoad дальше по мере надобности аттачим из массива нужный битмап куда надо.. import flash.display.*;
class Someclass {
private var images:Array=[];
public var onLoad:Function;
public var length:Number;
//грузим, копируем, удаляем
public function load(urls:Array){
images=[];
length=urls.length;
var o=this;
for(var counter=length,i=length;i--;){
var ml =new MovieClipLoader();
ml.tag=i;
ml.mc=_root.createEmptyMovieClip('tmp'+i,_root.getNextHighestDepth());
ml.imgs=images;
ml.onLoadInit=function(){
var bmp=this.imgs[this.tag]=new BitmapData(this.mc._width,this.mc._height);
bmp.draw(this.mc);
this.unloadClip(this.mc);
this.mc.removeMovieClip();
if(!--counter)o.onLoad();
}
ml.loadClip(urls[i],ml.mc);
}
}
//аттачим битмап в мувик where( для примера..
public function displayImage(where:MovieClip,num:Number){
where.attachBitmap(images[num],where.getNextHighestDepth());
}
}
///////////////пример/////////////
var imageLoader=new Someclass();
imageLoader.load(['p0.jpg','p1.jpg']);
imageLoader.onLoad=function(){
//trace('loaded');
_root.onMouseUp=function(){
var mc=this.createEmptyMovieClip('tmp',this.getNextHighestDepth())
mc._x=random(Stage.width);
mc._y=random(Stage.height);
imageLoader.displayImage(mc,random(imageLoader.length));
}
}
|
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2003
Адрес: Север
Сообщений: 244
|
to vecalion:
боюсь показаться слишком умным =), но 2-ой способ отлично работает... при некоторых условиях =) Итак: Грузишь картинки в невидимые (находящиеся за сценой или _visible = false) мувики. Делаешь мувик, который будет отображать эти картинки (следишь за его координатами, если тебе надо, и т.д.). Невидимые мувики после загрузки картинок просто-напросто удаляешь. И всё. Грузишь по нажатию на кнопку нужную картинку в тот самый мувик, что создал для этого. Фишка: CACHE ON! Если ты не используешь при загрузке картинок приёмы, запрещающие их кэширование, то, я думаю, доли секунды, которые потребуются браузеру, чтоб достать из кэша твои картинки -- вполне приемлемая цена за то, чтоб обойтись без использования 8-го Флэша.
__________________
Scio me, nihil scire. Последний раз редактировалось nyctota; 06.01.2006 в 12:53. |
|
|||||
|
nyctota предложил хороший вариант, я тоже в большинстве проектов так делаю %))), хотя бывают делал и такой вариант( работает для большинства случаев, и немного геморно бывает с координатами):
создаютется нужное для картинок число мувиков которые лепяться к руту, ну или в какой нить мувик к которому потом могут "достучаться", мувики "контейнеры", и этим "контейнерам" , передаеться ссылка не на саму картинку, а на мув прикрепленный к руту, и контейнер делает с ним свои дела %)) |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 141
|
2 silin
Слушай... я новичок... у меня не получается это сделать, как в твоём коде... можешь дать fla файл посмотреть... нужная вещь, пытаюсь реализовать, а сделать не могу... подсказать некому... |
|
|||||
|
Регистрация: Apr 2006
Сообщений: 40
|
silin, подскажи плиз если не трудно как это всё использовать. Я пока ещё в темноте, а так хочется к свету. Если конкретно то как это всё размещать. Было бы супер если бы исходник. Для развития это супер. Заранее спасибо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:47. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|