Ciao ragazzi,
Ho creato una galleria XML con delle thumbs verticali a 3 colonne.
Dopo averla realizzata mi sono reso conto che doveva essere una multigalleria, allora mi sono creato 3 pulsanti che richiamano xml diversi attraverso una funzione che contiene tutto il codice della gallery. Tutto procede bene ma non so come far rimuovere le thumbs dal movie clip contenitore prima che vengano caricate le altre quando carico un XML diverso.
Le thumbs pratticamente si caricano sopra quelle esistenti prima e così via, appesantendo il filmato.
Non riesco ad utilizzare thContainer.removeChild(th);, al click del pulsante finché thContainer.addChild(th); sta all'interno del loop for e della funzione. Come posso fare. Sotto, il codice integrale. Grazie
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
import caurina.transitions.properties.FilterShortcuts;
FilterShortcuts.init();
ColorShortcuts.init();
var setXml:String = "parure.xml";
var imageLoader:Loader = new Loader;
picContainer.addChild(imageLoader);
changeGallery(orologiBttn, "orologi.xml");
changeGallery(parureBttn, "parure.xml");
changeGallery(anelliBttn, "anelli.xml");
//changeGallery(borseBttn, "borse.xml");
changeGallery(portachiaviBttn, "portachiavi.xml");
function changeGallery (currentButton:Object, nomeXml:String) {
currentButton.addEventListener(MouseEvent.CLICK, currentClick);
function currentClick (event:MouseEvent):void {
picContainer.removeChild(imageLoader);
setXmlFunction(nomeXml);
}
}
setXmlFunction(setXml);
function setXmlFunction (xml:String) {
handler_mc.y = 199.5;
thContainer.y = 171.25;
//Set Variables
var xmlRequest:URLRequest = new URLRequest(xml);
var xmlLoader:URLLoader = new URLLoader(xmlRequest);
var imgData:XML;
var xmlList:XMLList;
//var thumbLoader:Loader;
var numberOfChildren:Number;
var columnNum:Number = 3;
var arrayURL:Array = new Array();
var arrayName:Array = new Array();
var arrayThumb:Array = new Array();
var checkSec:Timer = new Timer(100);
checkSec.start();
//Add Listeners
xmlLoader.addEventListener (Event.COMPLETE, xmlLoadedFunction);
picContainer.buttonMode = true;
function xmlLoadedFunction (evt:Event):void {
imgData = new XML(evt.target.data);
xmlList = imgData.children();
numberOfChildren = imgData.*.length();
imageLoader.load(new URLRequest(imgData.image[0].imgLink));
picContainer.addChild(imageLoader);
for (var i:int=0; i < numberOfChildren; i++) {
var th:Thumb = new Thumb;
thContainer.addChild(th);
th.thLnk(imgData.image[i].thumbLink, imgData.image[i].imgLink, imgData.image[i].imgtitle);
arrayThumb.push(th);
//posiion the thumbs
if(i< columnNum) {
arrayThumb[i].y = 4;
arrayThumb[i].x = i*85+4;
} else {
arrayThumb[i].y = arrayThumb[i-columnNum].y + 86;
arrayThumb[i].x = arrayThumb[i-columnNum].x;
};
arrayThumb[i].addEventListener(MouseEvent.MOUSE_UP, thMouseUp);
arrayThumb[i].addEventListener(MouseEvent.CLICK, thClick);
arrayThumb[i].addEventListener(MouseEvent.MOUSE_DOWN, thMouseDown);
arrayThumb[i].buttonMode=true;
}
};
function thClick (event:MouseEvent):void {
Tweener.addTween(picContainer, {_brightness:1, delay:0, time:0.1, transition:"linear"});
//Tweener.addTween(picContainer, {_Blur_blurX:100, _Blur_blurY:100, delay:0, time:0.1, transition:"linear"});
Tweener.addTween(picContainer, {_brightness:0, delay:0.1, time:4, transition:"easeOutExpo"});
//Tweener.addTween(picContainer, {_Blur_blurX:0, _Blur_blurY:0, delay:0.1, time:1, transition:"easeOutExpo"});
}
function thMouseUp (event:MouseEvent):void {
imageLoader.load (new URLRequest(event.currentTarget.name));
}
function thMouseDown (event:MouseEvent):void {
imageLoader.unload();
}
var minScroll:Number = 0;
var maxScroll:Number = track_mc.height - handler_mc.height;
var draging:Boolean = false;
//---------------i limiti entro i qualli il handler_mc è trascinabile---------------//
var bounds:Rectangle = new Rectangle (handler_mc.x, handler_mc.y, 0, maxScroll);
//---------------fa vedere la manina--------------//
handler_mc.buttonMode = true;
handler_mc.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
//---------------MOUSE_DOWN event--------------//
function beginDrag(event:MouseEvent):void {
handler_mc.startDrag(false, bounds);
draging=true;
handler_mc.addEventListener(Event.ENTER_FRAME, checkingProgress);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
}
function endDrag(event:MouseEvent):void {
handler_mc.stopDrag();
draging=false;
}
function checkingProgress(event:Event):void {
var procent:Number = ((handler_mc.y-197)/2);
if (draging) {
Tweener.addTween(thContainer, {y: 177 +(-procent*((arrayThumb.length)/3*84-172))/100, delay:0, time:2, transition:"easeOutExpo"});
}
}
}


Rispondi quotando