Показать сообщение отдельно
Старый 10.10.2011, 19:53
thirst вне форума Посмотреть профиль Отправить личное сообщение для thirst Найти все сообщения от thirst
  № 1  
Ответить с цитированием
thirst

Регистрация: Aug 2011
Сообщений: 19
По умолчанию Прелоадер для вконтакте. AS 3.0

Всем привет. Я хочу сделать приложение для вк с прелоадером. И при попытке его создать, я столкнулся с проблемой. У меня есть пустой fla-файл и в нем класс:
Код AS3:
package 
{
	//импорт нужных классов
	import flash.display.MovieClip;
	import flash.text.TextField;
	import flash.display.Loader;
	import flash.text.TextFormat;
	import flash.text.TextFieldAutoSize;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.events.ProgressEvent;
 
	//сам класс
	public class Preloader extends MovieClip
	{
		//объявление переменных
		private var loadbar:Loadbar_mc;
		private var loaderSWF:Loader;
		private var tf:TextField;
 
		//конструктор класса
		public function Preloader():void
		{
			//создаем текстовое поле, лоадбар и подключаем прелоадер
			createTF();
			createLB();
			createPreloader();
		}
		private function createTF():void
		{
			// создаем текстовое поле и применяем свойста
			tf = new TextField();
			tf.autoSize = TextFieldAutoSize.LEFT;
			tf.selectable = false;
			tf.x = 150;
			tf.y = 225;
			tf.visible = true;
 
			//устанавливаем формат текстового поля
			var format:TextFormat = new TextFormat();
			format.font = "Verdana";
			format.size = 30;
			format.color = 0xF0D13F;
			format.bold = true;
			tf.defaultTextFormat = format;
			tf.text = "ЗАГРУЗКА... 0%";
			//добовляем его
			addChild(tf);
 
		}
		private function createLB():void
		{
			//добавляем лоадбар
			loadbar = new Loadbar_mc();
			loadbar.x = 285;
			loadbar.y = 285;
			addChild(loadbar);
		}
		private function createPreloader():void
		{
			//создаем лоадер и регистрируем в нем нужные события.
			var req:URLRequest = new URLRequest("путь до флешки");
			loaderSWF = new Loader();
			//событие конца загрузки
			loaderSWF.contentLoaderInfo.addEventListener(Event.COMPLETE, end);
			//событие, которое обновляется при поступлении данных
			loaderSWF.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
			loaderSWF.load(req);
			//добавляем прелоадер, чтобы не было ошибки. Он не будет выводится до конца загрузки
			addChild(loaderSWF);
		}
		private function update(e:ProgressEvent)
		{
			//обновляем лоадбар и текстовое поле при каждом новом поступлении данных
			var loaded:Number = e.bytesLoaded;   //загружено
			var total:Number = e.bytesTotal;        //всего грузить
			var percent:Number = Math.round(loaded / total * 100);   //вычисляем проценты
			tf.text = "ЗАГРУЗКА... " + percent + "%";       //обновляем текстовое поле
                        //у меня символ со 100-кадровой анимацией, обновляем относительно процентов
			loadbar.gotoAndStop(percent);
		}
		private function end(e:Event)
		{
			//удаляем лоадбар и текстовое поле
			removeChild(tf);
			tf = null;
			removeChild(loadbar);
			loadbar = null;
			//переходим на 2 кадр, где нет контента прелоадера
			gotoAndStop(2);
		}
	}
}
Здесь у меня имеется символ лоадбара со 100 кадровой анимацией, чтобы переносить лоадбар, относительно процентов, остальное все програмное. Сама флешка лежит на народе.ру . Дело в том, что локально, скрипт работает идеально, но когда я кидаю его в вк, то не все идет по плану. Я тестил в разных браузерах (IE8, opera11 - грузят до конца, но не отображают флешку; google chrome - вообще не грузит; firefox-ом я не тестил), но ниче не помогает. Ребят, помогите новичку с кодом, или кинте сюда свой прелоадер для вк. Я был бы очень признателен.