Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 16.04.2009, 21:05
mrMEM вне форума Посмотреть профиль Отправить личное сообщение для mrMEM Найти все сообщения от mrMEM
  № 1  
Ответить с цитированием
mrMEM

Регистрация: Feb 2009
Сообщений: 63
По умолчанию Баги: Перекрытие и смещение картинок

не закрывайте тему, пожалуйста. мол название не отражает смысла, в прошлый раз все отражало.

Голову себе сломал уже, не понимаю где ошибка. Проблема в том, что баги возникают в IE, в других браузерах все норм.

Я делаю сайт для фотостудии, подргужаю много картинок с помощью лоадера.

баг№1: в разделе смакуйте иногда появляется черный прямоугольник с прозрачностью 70% который перекрывает основные картинки
вот код:
Код AS1/AS2:
function loadSmack(){
	function loadByNumber(num:Number){
		//trace(num);
		var container:MovieClip = targetMC.createEmptyMovieClip("container"+num, targetMC.getNextHighestDepth());
		var photoLDR:mx.controls.Loader = container.createClassObject(mx.controls.Loader, num, container.getNextHighestDepth());
		container._alpha = 70;
		container.Num = num;
		photoLDR.setSize(1,1);
		photoLDR.scaleContent = false;
		photoLDR.autoLoad = true;
		photoLDR.contentPath = photo_array[num]["Small"];
 
		container.onPress = function(){
			_global.rubric = "Смакуйте";
			_global.open_photo = photo_array[this.Num]["Url"];
			_global.rubricNumber = -1;
			window.gotoAndStop("viewer");
			window.viewerLoad();
		}
		container.onRollOver = function(){
			this._alpha = 100;
		}
		container.onRollOut = function(){
			this._alpha = 70;
		}
		// move Loader in correct place
		var listenerObject:Object = new Object();
		listenerObject.complete = function(eventObj:Object){
			var photoLDR:mx.controls.Loader = eventObj.target;
			var container:MovieClip = photoLDR._parent;
			scaleing = SHORTCUT_HEIGHT/photoLDR._height*100;
			container._xscale = scaleing;
			container._yscale = scaleing;
			//trace("_width:"+photoL._width+" _height:"+photoL._height+"    width:"+photoL.width+" height:"+photoL.height);
 
			if (currentX+container._width >= (maxX)){
				currentX=0;
				currentY+=SPACE_BETWEEN_SHORTCUT+SHORTCUT_HEIGHT;
			}
			container._x = currentX;
			container._y = currentY;
 
			currentX+=container._width+SPACE_BETWEEN_SHORTCUT;
 
			// load next picture
			if ((num<photo_array.length) && (currentY<SHORTCUT_HEIGHT+SHORTCUT_HEIGHT+SPACE_BETWEEN_SHORTCUT)){
				loadByNumber(num+1);
			}
		}
		photoLDR.addEventListener("complete", listenerObject);
	}
 
	var targetMC:MovieClip = smack;
	var SHORTCUT_HEIGHT = 53;		// the height of small image in photo part
	var SPACE_BETWEEN_SHORTCUT = 5;	// space between images
	var photo_array:Array = _global.portfolio_array["Смакуйте"]["Images"];
 
	// local variables
	var currentX = 0;
	var maxX = targetMC._width;
	var currentY = 0;
	var maxY = targetMC._height;
	loadByNumber(0);
	targetMC.setMask(targetMC.area);
}
баг№2: время от времени смещаются фотографии во вьювере, туда можно попасть кликнув на фотку в блоке "смакуйте". та же ситуация с логотипом снизу. смещается вправо вниз.

баг№3: на главной странице (она появляется при загрузке). иногда перекрываются фотографии, гружу последовательно, так же использую лоадер.
код:
(эта функция вызывается с параметром 0)
Код AS1/AS2:
	function loadByNumber(num:Number){
		var photoLDR:mx.controls.Loader = targetMC.createClassObject(mx.controls.Loader, num, targetMC.getNextHighestDepth());
		photoLDR.scaleContent = false;
		photoLDR.autoLoad = true;
		photoLDR.contentPath = photo_array[num]["Small"];
		photoLDR.onPress = function(){
			_global.rubric = rubric_array[this._name];
			_global.open_photo = photo_array[this._name]["Url"];
			_global.rubricNumber = rubric_number_array[this._name];
			_root.cont.window.gotoAndPlay("viewer");
		}
 
		// move Loader in correct place
		var listenerObject:Object = new Object();
		listenerObject.complete = function(eventObj:Object){
			var targetLDR:mx.controls.Loader = eventObj.target;
			trace(num+" width:"+targetLDR.width+" path:"+photo_array[num]["Small"]);
			targetLDR._x = currentX;
			targetLDR._y = currentY;
			if (targetLDR._width!=0){
				currentX+=targetLDR._width+SPACE_BETWEEN_SHORTCUT;
 
				if (currentX >= (maxX-targetLDR._width)){
					trace("перенос. curX:"+currentX+" photoLDR._width:"+targetLDR._width+" maxX"+maxX);
					currentX=0;
					currentY+=SPACE_BETWEEN_SHORTCUT+SHORTCUT_HEIGHT;
					targetLDR._x = currentX;
					targetLDR._y = currentY;
					currentX+=photoLDR._width+SPACE_BETWEEN_SHORTCUT;
				}
			}
			else{
				destroyObject(targetLDR);
			}
			//load next picture
			if((num+1<photo_array.length)&&(currentY<SHORTCUT_HEIGHT*3+SPACE_BETWEEN_SHORTCUT*2)){
				loadByNumber(num+1);
			}
		}
		photoLDR.addEventListener("complete", listenerObject);
 
	}
есть предположения, что баги возникают только под вистой в IE, больше я их ни где не видел.
вот адрес сайта: http://harlemstudio.ru/
заранее спасибо за отклик

Добавлено через 56 минут
это еще не все.
иногда не срабатывает событие "complete". после вызова процедуры load("path..")

есть основания полагать, что лоадер не везде и не всегда работает корректно.

хм.. думаю о том, чтобы переписать все без Loadera, поэтому мнена заволновал вопрос,
будут ли картинки кэшироваться без него?! кэшируются флэшем или браузером?


Последний раз редактировалось mrMEM; 16.04.2009 в 22:09.
Создать новую тему   Часовой пояс GMT +4, время: 19:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
loader , ошибка

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.