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

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

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

Регистрация: Jan 2006
Сообщений: 179
По умолчанию Странное поведение прелоадера

Есть небольшой класс для прелоадера:
Он работает, только одна проблемка, что он начинает срабатывать, но не сразу: показывать проценты и картинку загрузки начиная примерно с 40% ... а дальше все идет в штатном порядке... как все-таки его заставить раньше показывать процент загрузки хотя бы с 1%

Код AS3:
package com {
 
	import flash.display.MovieClip;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.PixelSnapping;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.events.Event;
 
 
	public class Preloader extends MovieClip {
		public static const ENTRY_FRAME:Number=1;
		private var progressText:TextField;
		//private var pbp:ProgressBar;
 
		public function Preloader() {		
			stop();
 
			progressText = getChildByName("loading_txt") as TextField;
			//pbp = getChildByName("loading_pb") as ProgressBar;
			animation = getChildByName("animation") as MovieClip;
 
			//pbp.mode = ProgressBarMode.MANUAL;
			//pbp.setProgress(0, 100);
 
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandlerP);
			loaderInfo.addEventListener(Event.COMPLETE, completeHandlerP);
		}
 
		private function progressHandlerP(event:ProgressEvent):void {
			var loaded:uint = event.bytesLoaded;
			var total:uint = event.bytesTotal;
			var percentLoaded:Number = Math.round((loaded/total) * 100);
			animation.gotoAndStop(percentLoaded);
			//trace(percentLoaded)
			//pbp.setProgress(percentLoaded, 100);
			progressText.text = "Загрузка " + percentLoaded + "%";
		}
 
		private function completeHandlerP(event:Event):void {
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
		private function enterFrameHandler(event:Event):void {
			if (currentFrame >= Preloader.ENTRY_FRAME) {
				removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
				gotoAndStop(2);
			}
		}
	}
}

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

Регистрация: Jan 2009
Сообщений: 1,651
О. Это ты отстал от жизни. Стартует прелоадер с 40%, потому что у тебя много тяжелых прилинкованых мувиков, у которых стоит галочка "'экспорт в первый кадр". Пока первый кадр не загружен - код не начнет исполнятся. Вот читай и смотри.
__________________
мой пустой блог

Старый 31.12.2010, 03:36
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 3  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Скажите а только от этого зависит?
Посомтрел я видео, там надо всю структуру менять,
скажите есть ли другой выход какой?

Добавлено через 6 минут
Странная реакиця, убрал галочки "'экспорт в первый кадр", стало еще хуже практически на 100% выскакивает теперь, что же это такое получается...
Теперь опять лучше, короче все эти галочки дали мне 10%
а где же ещё 30% ...


Последний раз редактировалось motoroller; 31.12.2010 в 03:50.
Старый 31.12.2010, 04:41
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 4  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Суть действий сводится к тому, чтоб убрать максимум контента (по крайней мере того, который занимает большой объем памяти) из кадра, содержащего прелоадер. Ко всему этому стоит добавить, что кадры при запуске флеша проигрываются по мере загрузки этих кадров, а не всей флешки целиком. Поэтому в настройках нужно ставить экспорт в другой (например, 2й) кадр.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Jan 2009
Сообщений: 1,651
Если убрать "галочки", то экспортируемые элементы загружаются с тем кадром, где они впервые упоминаются в коде, или впервые оказываются на сцене.
В твоём случае возможно проще сделать внешний прелоадер, чтобы не менять структуру всей флешки.
__________________
мой пустой блог

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
+1
если все уже собрано и работает - проще прикрутить внешний прелоадер.

Старый 31.12.2010, 18:20
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 7  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Вообщем я опнял что надо делать, скажите пожалуйста у меня несколько файлов для загрузки в разных местах, конечно хочется сделать универсальный прелоадер,с передачей параметров и тд.
Скажите реально сделать ресайз флешки, допустим у меня прелоадер 100X100, а после загрузки у меня флешка меняет размеры допустим 200X200?
А то не хочется для каждой флешки еще отдельно и делать отдельный прелоадер

Старый 31.12.2010, 19:02
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 8  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Вконтакт же сделал Значит и вы сможете.
__________________
тонкий тролль, осеянный благодатью

Старый 31.12.2010, 19:33
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 9  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Еще вопрос все-таки не стал я заморачивать с внешним прелоадером, нашел примерчик

Но почему-то стопорится тут
Код AS3:
updateAfterEvent();
Ошибка,
Scene 1, Layer 'action', Frame 1, Line 56 1180: Call to a possibly undefined method updateAfterEvent.

Скажите как этот метод можно поключить?

Старый 31.12.2010, 19:53
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 10  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Тот пример на as2 вообще.

Ты хелп-то открой и посмотри, что за метод updateAfterEvent и зачем он нужен. Этот метод есть у MouseEvent и TimerEvent, чтобы обновить изображения на экране сразу после возникновения события.
__________________
мой пустой блог

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

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

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


 


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


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