Я недавно начал изучать AS3, и я решил создать для него веб-сайт портфолио. Я загружаю информацию о сайтах, которые я создал, из внешнего XML-файла.
Все работает хорошо, но когда я загружаю новую картинку на сцену, предыдущая картинка остается там, чего, как я понимаю, не должно происходить. Как я понял из руководства Adobe AS3, когда вы создаете новый экземпляр загрузчика, предыдущий должен быть удален.
Я искал повсюду решение, но не могу найти подходящее. Я пытался использовать класс .unload, и я тоже пытался удалить removeChild, но он продолжает выдавать мне ошибки.
Вот код, который я использовал:
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.filters.*;
import flash.display.MovieClip;
import flash.events.MouseEvent;
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("portfolio.xml"));
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParsePortfolio(xmlData);
}
function ParsePortfolio(siteInput:XML):void {
var titleList:XMLList = siteInput.Site.title;
var servicesList:XMLList = siteInput.Site.services;
var urlList:XMLList = siteInput.Site.url;
var picList:XMLList = siteInput.Site.picture;
var XX:Number = 0;
var titleElement:XML = titleList[XX];
var servicesElement:XML = servicesList[XX];
var urlElement:XML = urlList[XX];
var picElement:XML = picList[XX];
container_mc.title_txt.text = (titleElement);
container_mc.services_txt.text = (servicesElement);
var pictureNumber:String = picElement;
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest(pictureNumber));
container_mc.pictureFrame.addChild(my_loader);
next.addEventListener (MouseEvent.CLICK, NbuttonClicked);
prev.addEventListener (MouseEvent.CLICK, PbuttonClicked);
function NbuttonClicked(e:Event):void {
var t1:Tween = new Tween (container_mc, "alpha", Strong.easeOut, 1, 0, .2, true);
t1.addEventListener(TweenEvent.MOTION_FINISH, dropbomb);
function dropbomb() {
XX++;
if (XX == titleList.length()) {
XX = 0;
}
var titleElement:XML = titleList[XX];
var servicesElement:XML = servicesList[XX];
var urlElement:XML = urlList[XX];
var picElement:XML = picList[XX];
container_mc.title_txt.text = titleElement;
container_mc.services_txt.text = servicesElement;
var pictureNumber:String = picElement;
trace(pictureNumber);
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest(pictureNumber));
container_mc.pictureFrame.addChild(my_loader);
visit.addEventListener (MouseEvent.CLICK, VbuttonClicked);
function VbuttonClicked(e:Event):void {
navigateToURL(new URLRequest(urlElement), "_blank");
}
var t2:Tween = new Tween (container_mc, "alpha", Strong.easeOut, 0, 1, .2, true);
}
}
function PbuttonClicked(e:Event):void {
var t3:Tween = new Tween (container_mc, "alpha", Strong.easeOut, 1, 0, .2, true);
t3.addEventListener(TweenEvent.MOTION_FINISH, dropbomb);
function dropbomb() {
if ( XX == 0 )
{
XX = (titleList.length()) - 1;
}
else {XX--;}
var titleElement:XML = titleList[XX];
var servicesElement:XML = servicesList[XX];
var urlElement:XML = urlList[XX];
var picElement:XML = picList[XX];
container_mc.title_txt.text = titleElement;
container_mc.services_txt.text = servicesElement;
var pictureNumber:String = picElement;
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest(pictureNumber));
visit.addEventListener (MouseEvent.CLICK, VbuttonClicked);
function VbuttonClicked(e:Event):void {
navigateToURL(new URLRequest(urlElement), "_blank");
}
var t4:Tween = new Tween (container_mc, "alpha", Strong.easeOut, 0, 1, .2, true);
}
}
}
Видеоклипы добавляются на сцену вручную. Я не знаю, является ли это причиной проблемы или это совершенно не связано.
Чтобы быть более конкретным, когда container_mc исчезает, вы можете увидеть предыдущее изображение, которое показывает, что они складываются, а не заменяются.
Я был бы очень признателен за некоторую помощь, по крайней мере, я хотел бы знать, что я делаю неправильно, и чтобы меня указали в правильном направлении.
Я прошу прощения за нубийский код и за глупый вопрос, но я действительно искал ответ, я искал учебники по созданию слайд-шоу в формате XML, и пока мне ничего не помогло.