|
|
|||||
Регистрация: Jun 2012
Сообщений: 142
|
Прелоадер виснет
Взял у когото готовый прелоадер, но он почемуто подвисает, показывает 10-20% потом виснет, жмем ф5 в браузере дальше показывает 30-40 и тд, до полной загрузки.
Подскажите что не так в прелоадере: package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.ProgressEvent; import flash.utils.getDefinitionByName; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.LoaderInfo; import flash.text.TextFormat; import flash.text.TextFieldType; [SWF(width = "1280", height = "1024", frameRate = "24", backgroundColor = "#FFFFFF")] public class Preloader extends MovieClip { private var preloader_text:TextField; private var swf_w:int=1280; private var swf_h:int=1024; private var newFormat:TextFormat = new TextFormat(); public function Preloader() { if (stage) { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; } addEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress); loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError); // Show loader preloader_text=new TextField(); preloader_text.text="Загрузка: 0 % "; preloader_text.textColor=0x000000; preloader_text.selectable=false; preloader_text.autoSize=TextFieldAutoSize.CENTER; preloader_text.x=swf_w/2-preloader_text.width/2; preloader_text.y=swf_h/2; addChild(preloader_text); } private function ioError(e:IOErrorEvent):void { trace(e.text); } private function progress(e:ProgressEvent):void { // Update loader newFormat.size = 34; newFormat.bold = 1; preloader_text.text = "Загрузка: " + (Math.round((loaderInfo.bytesLoaded * 100) / loaderInfo.bytesTotal)) + " %"; preloader_text.setTextFormat(newFormat); } private function checkFrame(e:Event):void { if (currentFrame == totalFrames) { stop(); loadingFinished(); } } private function loadingFinished():void { removeEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress); loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError); // Hide loader preloader_text.visible=false; startup(); } private function startup():void { var mainClass:Class = getDefinitionByName("Main") as Class; if (parent == stage) stage.addChildAt(new mainClass() as DisplayObject, 0); else addChildAt(new mainClass() as DisplayObject, 0); } } } И еще он режет основной сцф до 800 по вертикали. Как это убрать? Добавлено через 34 минуты с резалкой до 800 разобрался, мой косяк в хтмле, прелоадер все еще виснет( |
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Пальцем в небо - почему-то проверяется закончилась ли загрузка не по тому, загрузился ли файл, а проигралась ли какая-то анимация до конца (в функции checkFrame). Может кадров мало и он преждевременно вызывает loadingFinished ? Попробуйте подписаться на событие complete вашего LoaderInfo, и там вызвать loadingFinished.
|
|
|||||
Регистрация: Jun 2012
Сообщений: 142
|
сделал, не помогло...
Но тут выяснил интересный факт, на медленном инете прелоадер не виснет..потихоньку тикает и тикает до упора. На быстром, виснет 100% мб это не прелоадера глюк? |
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
Чую, анимация у Вас на таймлайне покоится, не к добру это. Убрать стоит её и не расчитывать на неё, а работать лишь с bytesLoaded и bytesTotal. Тогда анимацию запустить надобно.
__________________
john |
|
|||||
Регистрация: Jun 2012
Сообщений: 142
|
нет, не от скорости зависит..
Потестил на 4х комах на 2х виснет на 2х нет) на каждом тестил 2мя браузерами мозилой и ие, либо в обоих виснет либо в обоих пашет. Понятно, что уже оффтоп, мож кто в курсе что может быть за трабла? |
|
|||||
[+4 08.09.13]
Регистрация: May 2012
Сообщений: 131
|
обычно так делается:
var mainClass:Class = getDefinitionByName("ru.domain.project.Main") as Class; addChild(new mainClass() as DisplayObject); почему вы решили что ошибка именно в прелоадере? дебаг стопы хоть запускали? |
|
|||||
Регистрация: Jun 2012
Сообщений: 142
|
что такое фп??
Операционка на всех одна, браузеры и их версии тоже идентичны. Вин 7 мах сп1 ФайрФох 16.0.2 Гугл хром 22.0.1229.96 файрвол+антивирь тож везде один)) Добавлено через 48 минут я ж уже написал, что не в нем проблема. |
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
Попробуйте убрать
с конструктора и вставить это в ф-цию loadingCompleteHandler, где
__________________
john |
|
|||||
Регистрация: Jun 2012
Сообщений: 142
|
Цитата:
Добавлено через 2 минуты ФлэшПлееры везде одинаковые, последнее обновление |
Часовой пояс GMT +4, время: 02:12. |
|
« Предыдущая тема | Следующая тема » |
|
|