![]() |
|
||||||||||
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
использую MovieClipLoader чтобы загрузить мувик.
специально выложил работу в нет и подгружаемый ролик сделал достаточно большим. когда подгружаемый ролик грузится (занимает минут 5) вылазит окно "Скрипт вызывает медленную работу скрипта... Прервать/Продолжить". успевает вылезти несколько раз. Можно это окно как-то подавить?
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
эмм... это класс.... и будет простыня... ну ладно...
class game.Cell extends MovieClip{
var isPlayer; //флаг, является ли клетка клеткой игрока
var isChar; //определяет является ли клетка клеткой с чаром
var isEnemy; //атакуемая клетка
var preloader,model,cursor:MovieClip;
var side,row,pos:Number;
var start_idle1,end_idle1,start_idle2,end_idle2,start_attack1,end_attack1,start_attack2,end_attack2;
function Cell (){
//здесь была инициализация переменных
}
//по вызову - загружаем модель
function loadModel (modelname){
this.model._alpha=0; //делаем модель на время загрузки невидимой
var mcl=new MovieClipLoader ();
var listener=new Object ();
listener.isTransformed=0; //флаг определяет затемнили ли мы модельку или нет
listener.cell=this;
listener.model=this.model;
listener.preloader=this.preloader;
listener.onLoadProgress = function (mov,loaded,total){
if (!this.isTransformed && mov._framesloaded>this.cell.start_idle2 &&
((this.cell.side==0 && mov._framesloaded>=this.cell.start_idle1) ||
(this.cell.side==1 && mov._framesloaded>=this.cell.start_idle2))){
this.isTransformed=1;
mov.gotoAndStop (this.cell.side==0?this.cell.start_idle1:this.cell.start_idle2);
var c=new flash.geom.ColorTransform(); c.redMultiplier=0; c.greenMultiplier=0;c.blueMultiplier=0;
mov.transform.colorTransform=c; //делаем модельку видимой,но черного цвета и с нужной ориентацией
this.preloader._visible=true; //делаем и прелоадер видимым
}
this.preloader.gotoAndStop (Math.round(loaded/(total/100)));
}
listener.onLoadComplete=function (mov){
var c=new flash.geom.ColorTransform();
mov.transform.colorTransform=c; //делаем модельку видимой обычного цвета
this.preloader._visible=false; //прячем прелоадер
}
mcl.addListener(listener);
mcl.loadClip ("data/models/"+modelname+".swf",this.model);
}
}
функция loadModel и выполняет подгрузку мувика, внутри себя создавая приемник для событий. код работает, выложен на http://www.crimea.com/~chas/celltest.swf (внимание! подгружает 8 метров, осторожно!), только это дурацкое окошко о медленном скрипте вылазит. что делает: начинает подгрузку мувика. когда подгрузка доходит до определенного кадра начинает отображать прелоадер и подгружаемый мувик в этом кадре, затемнив предварительно мувик в черный цвет. когда загрузка закончена - убирает затемнение мувика и прячет прелоадер.
__________________
~ Never trouble trouble till trouble troubles you! Последний раз редактировалось Chas; 17.04.2007 в 06:18. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Ни каких окошков у меня не вылезло. Вообще такое окно появляется, когда время на обработку скрипта превышает заданное ограничение (либо это бесконечный цикл, либо трудоемкие вычисления). Изменить это время в самом флеше нельзя. Поэтому стоит еще раз пересмотреть ваш код и попытаться найти то место которое вызывает, то что я описал в скобках.
|
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
видимо у вас машинка мощнее, чем у меня. или мне надо позакрывать лишних окон.
если я убераю вот эту проверку: то сообщение не вылазит. попробовал упростить проверку, сделав ее двухуровневой. появляется реже иногда вообще не появляется. думаю сделать два обработчика - первый будет с этой самой проверкой и после ее выполнения будет назначать второй обработчик вместо себя. изврааат %(
__________________
~ Never trouble trouble till trouble troubles you! Последний раз редактировалось iNils; 17.04.2007 в 07:10. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
А зачем вам проверять _framesloaded? есть событие onLoadInit, и проверка вообще не нужна.
|
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
а как я определю, что все необходимые кадры для проигрывания первой анимации загружены и я ее могу показать?
__________________
~ Never trouble trouble till trouble troubles you! |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|