PDA

Просмотр полной версии : Программное создание вложенного мува


Guelder
14.11.2006, 16:44
Создается массив мувов, в каждом из которых хочу создать еще по одному муву. Пишу следующее:
for(i=0; i<_global.pictureAmount; i++) {
photoArray[i] = this.createEmptyMovieClip("mc_"+i, this.getNextHighestDepth());
photoArray[i].photoLayer = photoArray[i].createEmptyMovieClip("photoLayer_mc", photoArray[i].getNextHighestDepth());

mcl.loadClip("pics/small/photo_"+i+"_s.swf", photoArray[i].photoLayer);
}
Флэш виснет наглухо, приходится задачу снимать. Я чего-то неправильно делаю?

Guelder
14.11.2006, 16:49
До цикла еще такие вот строчки
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mclListener);

wvxvw
14.11.2006, 16:57
Флеш может виснуть из-за того, что условие в FOR'e задано не правильно. Кроме того грузить что-бы там ни было лучше последовательно, а не одновременно. Например так:
var MCL:MovieClipLoader = new MovieClipLoader();
var MCLL:Object = {};
var toLoad:Array = [];
for(i=0; i<10; i++){
var _mc:MovieClip = _root.createEmptyMovieClip("mc_"+i, _root.getNextHighestDepth());
var _tgt:String = "image2load"+i+".jpg"
toLoad.push({clip:_mc, pic:_tgt});
}
MCLL.onLoadComplete = function(mc:MovieClip){
_root.toLoad.shift();
if(_root.toLoad.length>0){
_root.MCL.loadClip(_root.toLoad[0].pic, _root.toLoad[0].clip);
}
}
MCL.addListener(MCLL);
MCL.loadClip(_root.toLoad[0].pic, _root.toLoad[0].clip);

Guelder
14.11.2006, 17:02
Спасибо, щас буду разбираться...

diezel555
14.11.2006, 18:27
спасибо wvxvw за код

а вопросик можно?

как в цикле Вашего кода присвоить загружаемым мувикам свойства кнопок?

wvxvw
15.11.2006, 05:37
var MCL:MovieClipLoader = new MovieClipLoader();
var MCLL:Object = {};
var toLoad:Array = [];
for(i=0; i<10; i++){
var _mc:MovieClip = _root.createEmptyMovieClip("mc_"+i, _root.getNextHighestDepth());
var _tgt:String = "image2load"+i+".jpg"
var func:Function = function(){
trace(this);
}
toLoad.push({clip:_mc, pic:_tgt, f:func});
}
MCLL.onLoadComplete = function(mc:MovieClip){
mc.onRelease = _root.toLoad[0].f;
_root.toLoad.shift();
if(_root.toLoad.length>0){
_root.MCL.loadClip(_root.toLoad[0].pic, _root.toLoad[0].clip);
}
}
MCL.addListener(MCLL);
MCL.loadClip(_root.toLoad[0].pic, _root.toLoad[0].clip);
Все просто =)