Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.07.2009, 09:48
ekeeper вне форума Посмотреть профиль Отправить личное сообщение для ekeeper Найти все сообщения от ekeeper
  № 1  
Ответить с цитированием
ekeeper

Регистрация: May 2008
Сообщений: 102
По умолчанию AS3 Preloader vs IE

Есть уже готовый проект который надо подправить.

В нем прелоадер сделан отдельной сценой.
То есть есть 2 сцены (по одному кадру) под именами Preloader и Game
сначала играется первая, и как вся флэшка загрузилась - играется вторая

Проблема в том, что во всех браузерах кроме IE все работает хорошо, а в IE прелоадер проскакивается.


Все экспортиться во 2й фрэйм то есть в первый кадр второй сцены получается.
Выдержка из сайз репорта:
Код:
Frame #    Frame Bytes    Total Bytes    Scene
-------    -----------    -----------    ----------------
      1          14429          14429    Preloader
      2        1231454        1245883    Game (AS 3.0 Classes Export Frame)
вот код конструктора для главного класса Main и остальных методов для прелоадера:

Код AS3:
		public function Main() {
			super();
			stop();
 
			Security.allowDomain("*");
 
			stage.showDefaultContextMenu = false;
			stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
 
			progressBar = getChildByName("ProgressBarMC") as Sprite;
			progressBar.scaleX = 0;
 
			addEventListener(Event.ENTER_FRAME, Update);
 
			loaderInfo.addEventListener(Event.COMPLETE , loadingComplite);
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderUpdate);
		}
 
		public function loadingComplite(e:Event):void{
			if (gameLoaded == true)
				return;
		    gotoAndStop(1, "Game");
			Init();
		}			
 
		public function loaderUpdate(e:ProgressEvent):void{
		    var percent:Number = Math.floor( (e.bytesLoaded*100)/e.bytesTotal );
			progressBar.scaleX = percent/100;
		    if(percent == 100)
			{
	    	    gotoAndStop(1, "Game");
				Init();
			}
		}
Все прекрасно работает во всех браузерах кроме IE
запуская на локалке отдельно swf - тоже все работает.

Когда дебажил, понял, что в IE флэшка грузится сразу целиком, а потом уже показывает прелоадер. То есть прелоадер проскакивается и строки

Код AS3:
			loaderInfo.addEventListener(Event.COMPLETE , loadingComplite);
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderUpdate);
не функционируют, так как уже все загружено. И так как событие Event.COMPLETE уже состоялось, функция перехода в сцену игры - не срабатывает - то есть на экране висит один прелоадер.

Как это исправить?
Делал даже отдельным классом, в одной сцене, по одной всем известной статье ))
Опять же все работает везде, кроме как в IE

Старый 14.07.2009, 11:14
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 2  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
А какая версия IE? Под 8 у меня многое работает не так как хочется. Под остальными вроде все нормально было
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 14.07.2009, 11:17
Smrad вне форума Посмотреть профиль Отправить личное сообщение для Smrad Найти все сообщения от Smrad
  № 3  
Ответить с цитированием
Smrad

Регистрация: Nov 2008
Сообщений: 205
Отправить сообщение для Smrad с помощью ICQ
Поможет что-то в духе.
Код AS3:
    // этот if сработает только в IE и если тестить локально
    if (m_loaderInfo.bytesLoaded == m_loaderInfo.bytesTotal) 
    {
        onLoadComplete(null);
    }
    else 
    {
        m_loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
        m_loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
    }

Старый 14.07.2009, 11:37
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Ниче не моможет.
Надо встроить флешку в html, тогда будет прелоадер в IE

Старый 14.07.2009, 12:21
Smrad вне форума Посмотреть профиль Отправить личное сообщение для Smrad Найти все сообщения от Smrad
  № 5  
Ответить с цитированием
Smrad

Регистрация: Nov 2008
Сообщений: 205
Отправить сообщение для Smrad с помощью ICQ
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
Ниче не моможет.
Надо встроить флешку в html, тогда будет прелоадер в IE
Поможет .

Старый 14.07.2009, 12:32
ekeeper вне форума Посмотреть профиль Отправить личное сообщение для ekeeper Найти все сообщения от ekeeper
  № 6  
Ответить с цитированием
ekeeper

Регистрация: May 2008
Сообщений: 102
Цитата:
Сообщение от Smrad Посмотреть сообщение
Поможет что-то в духе.
Код AS3:
    // этот if сработает только в IE и если тестить локально
    if (m_loaderInfo.bytesLoaded == m_loaderInfo.bytesTotal) 
    {
        onLoadComplete(null);
    }
    else 
    {
        m_loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
        m_loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
    }
да, я так сам сделал, просто забыл в теме упомянуть
это решает только пол проблемы - на локалке-то пашет, а в сети прелоадер все равно проскакивается - белый экран а потом сразу игра

Добавлено через 2 минуты
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
Ниче не моможет.
Надо встроить флешку в html, тогда будет прелоадер в IE
при компиляции генерил не только swf но и html - запускал как раз html в IE - не работало

Добавлено через 3 минуты
Цитата:
Сообщение от SunShadow Посмотреть сообщение
А какая версия IE? Под 8 у меня многое работает не так как хочется. Под остальными вроде все нормально было
У меня 8ка, у друга 6ка - не работает ни у него ни у меня
сам Flash Player - свежескаченный

Старый 14.07.2009, 12:44
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 7  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Может тогда исходники положите глянуть?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 14.07.2009, 12:52
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 8  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
при компиляции генерил не только swf но и html - запускал как раз html в IE - не работало
Как это вы прелодер тестили локально через ИЕ запуская html?
Это ж... нереально. Он локально грузит с обезбашенной скоростью, Потом еще к тому-же кеширует флешки, просто афигенно. Что-б затестить прелодер на локальном компьютере в ИЕ надо Сервер Apache с плугинчиком тормозящим загрузку. Я в ИЕ ниче не настраиваю, что-бы кеш сбросился -его надо закрыть, а потом открыть (ИЕ). И зугружать html с флешкой (встроенный прелодер) с виртуального сервера с ограничением скорости сервера, тогда прелоадер будет видно, прикол в мозиле: если во время загрузки нажать на крестик, останавливающий загрузку, внутренний прелоадер остановится и флешка загрузится неполностью, в ИЕ такого нет.

Старый 14.07.2009, 13:08
ekeeper вне форума Посмотреть профиль Отправить личное сообщение для ekeeper Найти все сообщения от ekeeper
  № 9  
Ответить с цитированием
ekeeper

Регистрация: May 2008
Сообщений: 102
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
при компиляции генерил не только swf но и html - запускал как раз html в IE - не работало
Как это вы прелодер тестили локально через ИЕ запуская html?
Это ж... нереально. Он локально грузит с обезбашенной скоростью, Потом еще к тому-же кеширует флешки, просто афигенно. Что-б затестить прелодер на локальном компьютере в ИЕ надо Сервер Apache с плугинчиком тормозящим загрузку. Я в ИЕ ниче не настраиваю, что-бы кеш сбросился -его надо закрыть, а потом открыть (ИЕ). И зугружать html с флешкой (встроенный прелодер) с виртуального сервера с ограничением скорости сервера, тогда прелоадер будет видно, прикол в мозиле: если во время загрузки нажать на крестик, останавливающий загрузку, внутренний прелоадер остановится и флешка загрузится неполностью, в ИЕ такого нет.
Я в инет на FTP заливал ))
Значит от способа вставки swf в html зависит это?

Добавлено через 49 секунд
Цитата:
Сообщение от SunShadow Посмотреть сообщение
Может тогда исходники положите глянуть?
Вечером выложу


Последний раз редактировалось ekeeper; 14.07.2009 в 13:17.
Старый 14.07.2009, 13:16
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Значит от способа вставки зависит это?
не зависит.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.