![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: 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. |
![]() |
Часовой пояс GMT +4, время: 19:50. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| loader , ошибка |
|
|