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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.11.2009, 15:26
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 1  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
По умолчанию Preloading и библиотека

Делаю все так:

1. в первом кадре preloader
2. во втором накидано всего добра из библиотеки

Код AS3:
public function Main():void
{
	addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
 
private function onAddedToStage(e:Event):void
{
	stop();
	addEventListener(Event.ENTER_FRAME, loading);
}
 
private function loading(e:Event):void
{
	var bl:uint = super.loaderInfo.bytesLoaded;
	var bt:uint = super.loaderInfo.bytesTotal;
	var pc:uint = uint((bl / bt) * 100);
	if (bl == bt)
	{
		removeEventListener(Event.ENTER_FRAME, loading);
		removeChild(preloader);
		init();
	} else {
		preloader.updatePercent(pc);
	}
}
 
private function init():void
{
	gotoAndStop(2);
	var test:Sprite = new MainBackground01();
	addChild(tattoo);
}
Так вот из-за присвоения test весь процесс прелоадинга наламывается. Убираю - все ок!
Коллега предложил заменить эту строку на
Код AS3:
var test:Sprite =  new (getDefinitionByName("MainBackground01") as Class);
и помогло — прелоадер снова работает.
это вообще нормальная ситуация и ее обход? или я чего-то нагородил?
__________________
Поймай яблоко 2!

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
да это нормально так и поступают. иначе, используя new MainBackground01();, вы имплементите в прелоадер главный класс (а вместе с ним и все остальное)
__________________
я могу стать всем, если только захочу

Старый 11.11.2009, 15:44
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Спасибо понял. Тема исчерпана )
__________________
Поймай яблоко 2!

Старый 16.11.2009, 17:59
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 4  
Ответить с цитированием
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Felicast, разжуй для идиота, почему именно так?
Подобная задача, все работает. Но почему именно так все решается. Почему не через new MainBackground01()
__________________
Бороться и искать, найти и перепрятать.

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Цитата:
Сообщение от Random SunFire Посмотреть сообщение
Felicast, разжуй для идиота, почему именно так?
Подобная задача, все работает. Но почему именно так все решается. Почему не через new MainBackground01()
>>вы имплементите в прелоадер главный класс (а вместе с ним и все остальное)
Флеш new MainBackground01() вкомпилит в первый кадр и прелоадер не появится, тк. первый кадр будет много весить, потому, что в нем будет MainBackground01();
__________________
Гоночка

Старый 16.11.2009, 23:05
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 6  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Почему не через new MainBackground01()
ну смотрите: MainBackground01 - это главный класс, у него в начале - имплементы всех классов, которые он использует, у тех в свою очередь свои имплементы и т.д.
делайте выводы
__________________
я могу стать всем, если только захочу

Старый 19.11.2009, 15:08
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 7  
Ответить с цитированием
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Хорошо, а что происходит при
new (getDefinitionByName("MainBackground01") as Class);
__________________
Бороться и искать, найти и перепрятать.

Старый 19.11.2009, 17:15
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 8  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Сообщение от Random SunFire Посмотреть сообщение
Хорошо, а что происходит при
new (getDefinitionByName("MainBackground01") as Class);
старина flash player рыщет по swf файлу в поисках необходимого класса по его названию и возвращает этот класс.
при этом этот класс MainBackground01 не ипортируется в использующий его класс.
__________________
я могу стать всем, если только захочу

Старый 19.11.2009, 15:14
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
var test:Sprite = new MainBackground01();
идентично
var test:Sprite = new (getDefinitionByName("MainBackground01") as Class) as Sprite;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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