Salve a tutti.
Come da titolo, ho un problema nel passare dei parametri dalla timeline principale ad un MovieClip instanziato tramite AS3.
Il programma gira su Android.
Ecco il codice:
- Timeline principale:
codice:
var gallery:Gallery=new Gallery();
gallery.x=400;
gallery.y=240;
gallery.sorgenteFile=f.url;
gallery.sorgenteXML=galleryLink;
var timer:Timer=new Timer(0);
timer.addEventListener(TimerEvent.TIMER, function(){
if(gallery.uscitaPremuto){
timer.stop();
removeChild(gallery);
}
});
timer.start();
addChild(gallery);
dove gallery è il MovieClip in questione e sorgenteFile e sorgenteXML sono i campi del MovieClip che voglio popolare.
- MovieClip:
codice:
import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.utils.Timer;
import flash.events.TimerEvent;
var uscitaPremuto:Boolean=false;
var numImg:int;
var totImg:int;
var sorgenteFile:String=null;
var sorgenteXML:String=null;
var loaderXML:URLLoader=new URLLoader();
var img:XMLList;
var xmlCarico:Boolean=false;
var tg:Timer=new Timer(0);
Multitouch.inputMode = MultitouchInputMode.GESTURE;
loaderImg.addEventListener (TransformGestureEvent.GESTURE_SWIPE, strisciaturaImg);
exitBtnGallery.addEventListener(MouseEvent.CLICK, function(){
uscitaPremuto=true;
});
loaderXML.addEventListener(Event.COMPLETE, caricaXML);
tg.addEventListener(TimerEvent.TIMER, controlloDati);
function strisciaturaImg(event:TransformGestureEvent)
{
if(numImg>1 && numImg<totImg){
switch(event.offsetX)
{
// strisciato a destra
case 1:
{
cambiaImmagine(false);
break;
}
// strisciato a sinistra
case -1:
{
cambiaImmagine(true);
break;
}
}
}else if(numImg==1){
if(event.offsetX==-1){
cambiaImmagine(true);
}
}else if(numImg==totImg){
if(event.offsetX==1){
cambiaImmagine(false);
}
}
}
function controlloDati(e:TimerEvent){
if(sorgenteFile!=null && sorgenteXML!=null){
tg.stop();
loaderXML.load(new URLRequest(sorgenteFile+sorgenteXML));
}
}
function cambiaImmagine(avanti:Boolean){
if(xmlCarico){
if(avanti){
numImg++;
}else{
numImg--;
}
loaderImg.source=sorgenteFile+img[numImg-1];
contoImgTxt.htmlText="<font color=\"#FF0000\">" + numImg + "</font>/" + totImg;
}
}
function caricaXML(e:Event){
var xml:XML=e.target.data;
xmlCarico=true;
totImg=int(xml.immagini.totImg[0].text());
numImg=0;
img=xml.immagini.src.text();
cambiaImmagine(true);
loaderXML.removeEventListener(Event.COMPLETE, caricaXML);
}
tg.start();
stop();
dove loderImg è un oggetto di classe UILoader impostato in autoload.
Ammetto di essere un neofita di AS3, perciò siate chiarissimi per favore 
Vi ringrazio in anticipo per la disponibilità.