Показать сообщение отдельно
Старый 05.10.2006, 12:30
Ulya вне форума Посмотреть профиль Отправить личное сообщение для Ulya Найти все сообщения от Ulya
  № 4  
Ответить с цитированием
Ulya

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
Хемуль, спасибо за пример, сделала вот так, работает, но со временем зависает, у меня есть подозрение, что скорей всего что-то где-то не удаляется, за полчаса флэха зависает полностью, подскадите где что нужно убивать?
Код:
function put(banners_arr, qq) {
	curr = _root["obj_"+qq];
	var curr1:MovieClipLoader = new MovieClipLoader();
	trace(banners_arr);
	var DISSOLVE_INTERVAL:Number = 10;
	var PICTURES_NUMBER:Number = banners_arr.length;
	var frameCounter:Number = 0;
	var currentPicture:Number = 0;
	var mclListener:Object = new Object();
	mclListener.onLoadInit = function(target_mc:MovieClip) {
		trace("onLoadInit "+target_mc);
		target_mc._x = _root.Objects[qq].x;
		target_mc._y = _root.Objects[qq].y;
		target_mc._width = _root.Objects[qq].w;
		target_mc._height = _root.Objects[qq].h;
	};
	addPicture(currentPicture).frameCounter = DISSOLVE_INTERVAL;
	function addPicture(pictureNum):MovieClip {
		var newPicture = curr.createEmptyMovieClip("newPicture", this.getNextHighestDepth());
		newPicture.frameCounter = 1;
		newPicture.onEnterFrame = function() {
			trace("on EnterFrame new Picture"+ this.frameCounter);
			this.frameCounter++;
		};
		SHOW_INTERVAL = 31*banners_arr[pictureNum].time;
		var newPictureName:String = banners_arr[pictureNum].b_name;
		for (v in curr) {
			curr1.unloadClip(curr[v]);
		}
		curr1.loadClip(newPictureName, newPicture);
		curr1.addListener(mclListener);
		newPicture.frameCounter = 1;
		return newPicture;
	}
	curr.onEnterFrame = function() {
		if (PICTURES_NUMBER<>1) {
			if (frameCounter<=DISSOLVE_INTERVAL) {
				trace("this "+this.newPicture);
				this.newPicture._alpha = frameCounter*(100/DISSOLVE_INTERVAL);
			}     
			if (frameCounter>SHOW_INTERVAL) {
				for (v in this) {
					this[v].removeMovieClip();
				}
				trace("теперь внутри");
				for (v in this) {
					trace("-"+this[v]);
				}
				currentPicture++;
				if (currentPicture>PICTURES_NUMBER-1) {
					currentPicture = 0;
				}
				trace("PICTURES_NUMBER "+PICTURES_NUMBER);
				addPicture(currentPicture);
				frameCounter = 1;
			} else {
				frameCounter++;
			}
		}
	};
}