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

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

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

Регистрация: Dec 2011
Сообщений: 17
По умолчанию Конфликт прелоадера и # -тега в адресной строке

Здравствуйте. Такая вот проблема. Сделал прелоадер на AS3.
При просмотре ролика(в момент загрузки), когда адресная строка не имеет в конце # например: example.ru прелоадер работает (видна анимация). Если в конце адресной строки поставить # например: example.ru# или example.ru#foto или example.ru/test.html#foto прелоадер не работает. При перезагрузке кэш чищу.

Ролик компилирую в FP 9.
В actionscrip settings в поле Preloader methot выбрал "Custom preloader loop".
В первом кадре находится символ, который привязан к классу MyPreloader (см. ниже ). Кадр весит 70Kb.
Во втором кадре находится Bitmap и stop(); кадр весит 4МB
Код класса прелоадера:
Код AS3:
package  {
	import flash.display.MovieClip;
	import flash.display.LoaderInfo;
	import flash.display.DisplayObject;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.events.IOErrorEvent;
	import flash.errors.IOError;
	import flash.display.DisplayObjectContainer;
	import flash.text.TextField;
 
	public class MyPreloader extends MovieClip{
		protected var _loaderinfoobj:LoaderInfo;
		protected var _displayobjparent:DisplayObjectContainer;
		protected var _progress:Boolean=false;
		protected var _x_:*=null;
		protected var _y_:*=null;
		public var txt:TextField;
		public function MyPreloader(loaderinfo:*=null,displayObjParent:Object=null,xx:*=null,yy:*=null,progres:Boolean=true) {
			// constructor code
			trace("SubaruPreloader создан");
			if(loaderinfo!=null){
				_loaderinfoobj=loaderinfo as LoaderInfo;
			}
			_x_=xx;
			_y_=yy;
			_progress=progres;
			this.addEventListener(Event.ADDED_TO_STAGE,_onAddedToStage);
			if(displayObjParent!=null){
				_displayobjparent=(displayObjParent as DisplayObjectContainer);
				trace("SubaruPreloader ",_displayobjparent);
				_displayobjparent.addChild(this);
			}
 
 
		}
		protected function _onIOErrore(e:IOErrorEvent):void{
			e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
			e.currentTarget.removeEventListener(Event.COMPLETE,_onComplete);
			end();
		}
		protected function _onComplete(e:Event):void{
			e.currentTarget.removeEventListener(Event.COMPLETE,_onComplete);
			e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
			end();
		}
		protected function _onProgress(e:ProgressEvent):void{
			trace("progress", e.bytesLoaded+" / "+e.bytesTotal)
			txt.text=String(Math.floor(100*e.bytesLoaded/e.bytesTotal));
			if(e.bytesLoaded/e.bytesTotal>=1){
				e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
				e.currentTarget.removeEventListener(ProgressEvent.PROGRESS,_onProgress);
			}
		}
		protected function _onAddedToStage(e:Event):void{
			trace("SubaruPreloader  присоединен к stage");
			txt.visible=_progress;
			_displayobjparent=(_displayobjparent==null)?this.parent:_displayobjparent;
			if(_x_!=null){
				x=Number(_x_);
			}
			if(_y_!=null){
				y=Number(_y_);
			}
 
			e.currentTarget.removeEventListener(Event.ADDED_TO_STAGE,_onAddedToStage);
 
			if(_loaderinfoobj!=null){
				if(_progress){ 
					trace("_loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);")
					trace("_loaderinfoobj =",_loaderinfoobj)
					_loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);
				}
				_loaderinfoobj.addEventListener(Event.COMPLETE,_onComplete);
				_loaderinfoobj.addEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
			}else{
				if(loaderInfo.bytesLoaded/loaderInfo.bytesTotal<1){
					_loaderinfoobj=loaderInfo;
					_loaderinfoobj.addEventListener(Event.COMPLETE,_onComplete);
					_loaderinfoobj.addEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
					if(_progress){
						trace("stage.loaderInfo.addEventListener(ProgressEvent.PROGRESS,_onProgress);");
						trace("_loaderinfoobj =",_loaderinfoobj)
						_loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);
					}
				}
			}
		}
		public function end():void{
			stop();
			die();
		}
		public function die(e:Event=null):void{
			trace("MyPreloader  удален со stage");
			try{if(e!=null){e.currentTarget.removeEventListener(e.type,die)}}catch(r:Error){}
			try{_loaderinfoobj.removeEventListener(Event.COMPLETE,_onComplete);}catch(r:Error){}
			try{_loaderinfoobj.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);}catch(r:Error){}
			try{_loaderinfoobj.removeEventListener(ProgressEvent.PROGRESS,_onProgress);}catch(r:Error){}
			stop();
			if(this.parent!=null){this.parent.removeChild(this)}
		}
 
	}
 
}
Добавлено через 3 часа 3 минуты
Людииии! Откликнитееееесь!

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

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

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


 


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


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