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

Регистрация: Oct 2009
Сообщений: 92
По умолчанию Притормаживает swf подгружаемый через xml

Помогите если сможете.

Дело в том что в галерею грузятся через xml и jpg и swf и проявляются плавно через alpha. И иногда происходит притормаживание погружаемых swf, то есть они не становятся до конца яркими. Помоте разобраться в чем дело.
Код AS3:
import flash.display.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
 
//Загрузчик для загрузки XML
var xmlLoader:URLLoader;
//когда данные из файла загружены присвоим их переменной
var myXML:XML;
//для определения каждого объекта данных в XML
var xmlList:XMLList;
//содержит URL 
var urlRequest:URLRequest;
//контейнер для фоток
var photos:Sprite;
//Кол-во фоток в альбоме
var foto_num:int;
//ТАЙМЕР 
var minuteTimer:Timer; 
//Твин
var myTween:Tween;
//регулятор скорости альфаканала
var alpha_speed:int;
 
//Функция создания и назначения элементов  
 
//загружаем XML
xmlLoader=new URLLoader();
//когда XML загрузиться вызовем функцию parseXML
xmlLoader.addEventListener(Event.COMPLETE,parseXML);
//загружаем файл
xmlLoader.load(new URLRequest("album.xml"));
//xmlLoader.load(new URLRequest("/images/swf/album.xml"));
//производим запрос ссылки
urlRequest=new URLRequest();			
 
//разбираем XML, когда он загрузился
function parseXML(event)
{
	//создаем объект XML
	myXML=new XML(event.target.data);
	//xmlList=myXML.albums;
	xmlList=myXML.photo;
	//количество 
	foto_num=xmlList.length()
	//trace('timer=' + myXML.timer);
	alpha_speed=int(myXML.slide);			
	//загружаем фото
	load_photo();
}
 
// загрузка фотографий
function load_photo():void
{
	var Pict_loader:Loader = new Loader();
	var NM:String;
	var num:int;
	//создаем слой для фоток
	photos=new Sprite();
	addChild(photos);
	//настраиваем события для загрузчика
	configureListeners(Pict_loader.contentLoaderInfo);
	//загружаем фото
	num=Math.ceil(Math.random()*foto_num)
	NM=myXML.photo[num-1];
	//trace(num+ ' - ' + NM );
	Pict_loader.load(new URLRequest(NM));
	Pict_loader.name="photo";
	photos.addChild(Pict_loader);
	//Создаем таймер
	minuteTimer = new Timer(1000, int(myXML.timer));
	minuteTimer.addEventListener(TimerEvent.TIMER, onTick); 
    minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); 
	//стартуем таймер
    minuteTimer.start(); 
}
function configureListeners(dispatcher:IEventDispatcher):void 
	{dispatcher.addEventListener(Event.COMPLETE, completeHandler);}
 
//Процедуры обработки событий загрузчика
function completeHandler(event:Event):void 
	{var myTween:Tween = new Tween(photos, "alpha", Strong.easeOut, 0, 1, alpha_speed, true);}
 
function onTick(event:TimerEvent):void
	{/*trace("таймер:" + event.target.currentCount);*/} 
 
function onTimerComplete(event:TimerEvent):void
{
	//trace("ТАЙМЕР ЗАВЕРШИЛСЯ - грузим следующую фотку"); 
	myTween = new Tween(photos, "alpha", Strong.easeOut, 0, 1, alpha_speed, true);
	myTween.addEventListener(TweenEvent.MOTION_FINISH, fOnFinish);
	minuteTimer.stop();
	removeChild(photos);
	load_photo();
} 
function fOnFinish(event:TweenEvent):void 
	{/*trace("ЗАКОНЧИЛСЯ ТВИН");*/}