![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 09.12.07]
Регистрация: Oct 2006
Сообщений: 114
|
Уважаемые форумчане!
Занялся вот тут тестированием своего небольшого проекта и выяснилось, что на слабой машине (PIII, 750, 256ОЗУ) почему-то не подгружаются некоторые картинки (примерно 100X100пикселей). Причем прелоадер срабатывает нормально, показывает 100% и все, начинается анимация, на сцене висит только прелоадер. Из этого я понимаю, что почему-то не срабатывает событие onComplete... Но почему??? Как мне это все отдебажить? (на слабой машине Flash 9 не стоит). На том компьютере, где проект разрабатывался - все ок, никакокого намека на проблему - все летает... Помогите, пожалуйста, понять в чем дело и отловить эту ошибку... Заранее спасибо! |
|
|||||
|
стервочка (я мужик)
|
Вы хотите, что все купили себе такие машины, поставили на них 9й флэш, а потом чисто за счёт своих экстрасенсорных способностей воспроизвели ваш код?
|
|
|||||
|
[+3 09.12.07]
Регистрация: Oct 2006
Сообщений: 114
|
Я просто думал, что эту проблемо можно как-нибудь быстро решить
вот код loaderа package package
{
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.*;
import flash.geom.*;
import flash.errors.*;
public class BaseClass extends Sprite
{
//the BaseClass in the base class for all loadable images
protected var Container:Sprite = new Sprite(); //maain parent container fot this class
protected var imgContainer:Sprite = new Sprite(); //container for ico image
private var progress_txt:TextField = new TextField(); // the implementation of the preloader // to do: make a graphic a preloader
//trying graphic implementation of the preloader
//to do make preloader as customizable as possible
private var preloader:Shape;
private var preloader2:Shape;
private var loadComplete:Event;
protected var icoPicURL:String;
public function BaseClass(cont:Sprite, strTarget:String):void
{
this.Container = cont;
this.icoPicURL = strTarget;
trace("Base class ContructorCalled");
}
protected function loadImg(container:Sprite, target:String):void
{
var contentContainer:Sprite = new Sprite();
contentContainer.name = "Content";
try
{
var swfLoader:Loader = new Loader();
var swfUrl:String = target;
var swfUrlReg:URLRequest = new URLRequest(swfUrl);
swfLoader.load(swfUrlReg);
}
catch(e:IOError)
{
trace(e.message);
}
swfLoader.contentLoaderInfo.addEventListener(Event.OPEN, showPreloader);
swfLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
function showPreloader(evt:Event):void
{
progress_txt.autoSize = TextFieldAutoSize.LEFT;
preloader = new Shape();
preloader.graphics.beginFill(0xFFFFFF);
preloader.graphics.lineStyle(0,0XFFFFFF);
preloader.graphics.drawRect(0,40,100,10);
preloader.graphics.endFill();
imgContainer.addChild(preloader);
preloader2 = new Shape();
preloader2.graphics.beginFill(0xC6C6CF);
preloader2.graphics.lineStyle(0,0xFFFFFF);
preloader2.graphics.drawRect(0,40,100,10);
preloader2.graphics.endFill();
preloader2.scaleX = 0;
imgContainer.addChild(preloader2);
imgContainer.addChild(progress_txt);
}
function showProgress(evt:ProgressEvent):void
{
var _result:uint = (evt.bytesLoaded*100)/evt.bytesTotal
preloader2.scaleX = _result/100;
progress_txt.y = 50;
progress_txt.x = 35;
progress_txt.text = _result.toString() +"%"; //"loaded:"+evt.bytesLoaded+" from "+evt.bytesTotal;
}
function swfLoaded(event:Event):void
{
imgContainer.removeChild(progress_txt);
imgContainer.removeChild(preloader);
imgContainer.removeChild(preloader2);
contentContainer.addChild(swfLoader.content);
container.addChild(contentContainer);
container.buttonMode = true;
loadComplete = new Event("loadComplete", true);
dispatchEvent(loadComplete);
//container.mouseChildren = false;
}
}
public function initImg(_xCoord:Number, _yCoord:Number):void
{
trace("initImg function of the BaseClass called");
loadImg(imgContainer,icoPicURL);
Container.addChild(imgContainer);
imgContainer.cacheAsBitmap = true;
imgContainer.x =_xCoord;
imgContainer.y =_yCoord;
}
public function removeImg():void
{
Container.removeChild(imgContainer);
}
}
}
Парадокс, но только что протестировал тот же самый проект на той же самой слабой машине, но в этот раз запускал все со своего веб сайта... работает все также медленно, но по крайней мере все картинки появляются... мистика... Последний раз редактировалось vvk80; 25.09.2007 в 16:24. |
|
|||||
|
стервочка (я мужик)
|
Container - это класс? если нет, то почему с большой буквы назван?
функции showPreloader, showProgress, swfLoaded могут быть удалены мусорщиком. на них нигде нет ссылок кроме как в самом диспетчере. я не уверен, что они по идеи могут умереть. почему нельзя сделать их методами класса? |
|
|||||
|
[+3 09.12.07]
Регистрация: Oct 2006
Сообщений: 114
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Интересно, код для девятого плеера и тут же написано, что 9-ый плеер не установлен на машине. Конечно вы ничего не увидите.
|
|
|||||
|
[+3 09.12.07]
Регистрация: Oct 2006
Сообщений: 114
|
Цитата:
У меня складывается впечатление, что flash просто почему-то в рэндом порядке не дожидается окончательной загрузки картинки, а начинает двигать анимаацию дальше, хотя у меня четко все вписано в действия OnComplete |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|