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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.10.2008, 09:39
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Можно вынести легко код загрузщика в отдельный класс
Код:
package {
	import flash.display.*;
	import flash.events.*;
	import flash.ui.Mouse;
	import flash.text.*;
	import flash.net.*;
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;

	public class Doc extends Sprite {
		var loader:FerryLoader;
		var count:int;
		var position:int;
		var path:String;
		var arr:Array;
		var sp:Sprite;
		var tween:Tween;
		var tr:Boolean;
		var i:int;
		function Doc() {
			path = 'http://www.dnadillo.dn.ua/images/imag/';
			arr = [
			   'magna_17_1024.jpg','magna_33_1024.jpg',
			   'magna_carta_078.JPG','magna_carta_115.JPG',
			   'magna_carta_126.JPG','magna_carta_127.JPG',
			   'magna_carta_131.JPG','magna_carta_133.JPG',
			   'magna_carta_140.JPG','magna_carta_141.JPG',
			   'magna_carta_144.JPG'
			   ];
			count = 0;
			position = 0;
			tr = false;
			loader = new FerryLoader(this);
			loader.urlTrain(path+arr[count]);
			tween = new Tween({i:0}, "i", Regular.easeOut, 0, 1, 10, true);
			tween.stop();
			tween.addEventListener(TweenEvent.MOTION_CHANGE, handleChange);
			tween.addEventListener(TweenEvent.MOTION_FINISH, fin);
		}
		function onward() {
			sp = this.getChildAt(this.numChildren-1) as Sprite;
			sp.alpha = 0;
			count++;
			if (count < arr.length) {
				loader.urlTrain(path+arr[count]);
				if (tr==false) {
					tr = true;
					tween.start();
				}
			}
		}
		function handleChange(evt:TweenEvent):void {
			//tween.obj.i;
			for (i=0; i<this.numChildren; i++) {
				if (i==position) {
					sp = this.getChildAt(i) as Sprite;
					trace(sp);
					sp.alpha = tween.obj.i;
				}
			}
		}
		function fin(evt:TweenEvent):void {
			position++;
			tween.start();
			trace('Конец');
		}
	}
}
И класс загрузщика
Код:
package {
	import flash.display.*;
	import flash.events.*;
	import flash.ui.Mouse;
	import flash.text.*;
	import flash.net.*;
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;

	public class FerryLoader extends URLLoader {
		var req:URLRequest;
		var loader:Loader;
		var doc:Doc;
		var sp:Sprite;
		function FerryLoader(_doc:Doc) {
			doc=_doc;
			req=new URLRequest();
			dataFormat= URLLoaderDataFormat.BINARY;
			addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
			addEventListener(Event.COMPLETE,got);

		}
		function urlTrain(_str:String) {
			req.url=_str;
			try {
				load(req);
			} catch (error:Error) {
				trace("Unable to load requested document.");
			}
		}
		function got(evt:Event) {
			loader = new Loader;
			loader.loadBytes(this.data);

			sp=new Sprite();
			sp.addChild(loader);
			doc.addChild(sp);
			doc.onward();
		}
		function ioErrorHandler(event:IOErrorEvent):void {
			trace('Ошибка');
			doc.onward();
		}
	}
}


Последний раз редактировалось Alex Lexcuk; 30.10.2008 в 09:42.
Создать новую тему   Часовой пояс GMT +4, время: 01:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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