2010-04-23 1 views
0

Мне действительно не нужна помощь, я просто хочу узнать ваше мнение об этом странном поведении Flash CS4 (AS3). должно быть что-то, что я пропустил. 1) что происходит: flash-фильм воспроизводится на любом (даже несуществующем) вызове функции между if (bytesLoaded == bytesTotal) и не воспроизводится на закомментированной или пустой строке. 2) что следует видеть вместо этого: никаких действий - я не звоню в любые функции временной шкалы, поэтому фильм не должен воспроизводиться. любое предупреждение или сообщение об ошибке? я не знаю, вспышка настолько * -nixy все время в способе обработки ошибок. 3) где: в пункте на первом кадре вflash-фильм играет сам, когда вы вызываете любую, даже неназванную, функцию в байтахLoaded == bytesTotal, если предложение

if(stage.loaderInfo.bytesLoaded==stage.loaderInfo.bytesTotal) 

(AS3)

Я думаю, что саман взял responsibilty на себе предположить, что, если мы используем bytesLoaded и BYTESTOTAL, то мы хотим, чтобы играть кино : |. что, если я хочу почитать число и не хочу играть в него?

я не использую пользовательский класс документа, поэтому я использую корень. * Вместо MovieClip (корень). *

--- это код AS3 на первом кадре, и встроенное видео в следующих 1999 кадров

stop(); 


root.addEventListener(Event.ENTER_FRAME,RootOnEnterFrame); 

function RootOnEnterFrame (evt:Event) { 
if(stage.loaderInfo.bytesLoaded==stage.loaderInfo.bytesTotal){ 

        //anyfunctionname(anynumber); 

      Math.ceil(1599); 

        funcdoesnotexists(7);     

    } 
} 

ответ

1

Проблема заключается в том, что веб-серверы не всегда говорят браузеру, насколько велик файл. К сожалению, Flash интерпретирует это как bytesTotal как 0. И, конечно же, верно 0 == 0.

Вы можете либо сообщить своему знаку swf заранее, либо настроить веб-сервер для отправки этой информации. Первый - самый распространенный способ обойти это.

+0

bitc, Благодарим вас за ответ. На самом деле, SWF играл в Flash IDE, а забавная часть состоит в том, что он считает, что даже Math.ceil() - это функция play(), не более того. Я думаю, что Macromedia-and-then-Adobe сопровождает ActionScript с подавленным прощением - думая что-то вроде «конечно, если программист проверяет bytesLoaded, то он, очевидно, хочет играть в фильм». Я не могу придумать более вероятный ответ. –

-1

Эй, я думаю, никто не имеет идеи, кроме Adobe/флеш-людей из Macromedia.

Спасибо, что ответили.

 Смежные вопросы

  • Нет связанных вопросов^_^