![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
не закрывайте тему, пожалуйста. мол название не отражает смысла, в прошлый раз все отражало.
Голову себе сломал уже, не понимаю где ошибка. Проблема в том, что баги возникают в IE, в других браузерах все норм. Я делаю сайт для фотостудии, подргужаю много картинок с помощью лоадера. баг№1: в разделе смакуйте иногда появляется черный прямоугольник с прозрачностью 70% который перекрывает основные картинки вот код: 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); } баг№3: на главной странице (она появляется при загрузке). иногда перекрываются фотографии, гружу последовательно, так же использую лоадер. код: (эта функция вызывается с параметром 0) 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); } вот адрес сайта: http://harlemstudio.ru/ заранее спасибо за отклик Добавлено через 56 минут это еще не все. иногда не срабатывает событие "complete". после вызова процедуры load("path..") есть основания полагать, что лоадер не везде и не всегда работает корректно. хм.. думаю о том, чтобы переписать все без Loadera, поэтому мнена заволновал вопрос, будут ли картинки кэшироваться без него?! кэшируются флэшем или браузером? Последний раз редактировалось mrMEM; 16.04.2009 в 22:09. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
ок, спасибо.
на данный момент вижу решением отказаться от компонента Loader. Надеюсь услышать решение, которое можно быстрее воплотить. Сайт гарит. Добавлено через 59 часов 17 минут Избавился от бага переписав сайт, подгружая основные картинки через MovieClipLoader. Считаю, что основные ошибки/баги возникали из-за того, что иногда Loader не вызывал событие complete. Некоторые смещения картинок - мой касяк. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| loader , ошибка |
|
|