Ciao, eccomi con un nuovo problema
Sto cercando di mettere in una galleria un campo di testo con la descrizione della relativa immagine visualizzata (miniature=pulsanti). Le descrizioni sono in un file XML esterno.
Ho questo codice da un Galleria interamente in XML, che non vale nel caso attuale dove invece ho una struttura completamente diversa (le miniature sono sullo stage ed ognuna richiama il relativo SWF esterno).
Codice PHP:
var imageText:TextField = new TextField();
var imageLoader:Loader;
var xml:XML;
var xmlList:XMLList;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("images.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();
for(var i:int = 0; i < xmlList.length(); i++)
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(xmlList[i].attribute("thumb")));
imageLoader.x = 25;
imageLoader.y = i * 103 + 25;
imageLoader.name = xmlList[i].attribute("source");
addChild(imageLoader);
imageLoader.addEventListener(MouseEvent.CLICK, showDida);
}
}
function showDida(event:MouseEvent):void
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(event.target.name));
imageLoader.x = 25;
imageLoader.y = 0;
addChild(imageLoader);
imageText.x = imageLoader.x;
imageText.y = imageLoader.y + 400;
for(var j:int = 0; j < xmlList.length(); j++)
{
if(xmlList[j].attribute("source") == event.target.name)
{
imageText.text = xmlList[j];
}
}
}
imageText.autoSize = TextFieldAutoSize.LEFT;
addChild(imageText);
Questo è il codice della Galleria su cui vorrei inserire (da XML esterno) la didascalia (descrizione) di ogni immagine in un campo di testo, come detto prima:
Codice PHP:
import fl.transitions.*;
import fl.transitions.easing.*;
page01Button.addEventListener (MouseEvent.CLICK, buttonClicked);
page02Button.addEventListener (MouseEvent.CLICK, buttonClicked);
page03Button.addEventListener (MouseEvent.CLICK, buttonClicked);
btn1_mc.addEventListener (MouseEvent.CLICK, buttonClicked);
page01Button.buttonMode = true;
page02Button.buttonMode = true;
page03Button.buttonMode = true;
btn1_mc.buttonMode = true;
btn1_mc.addEventListener(MouseEvent.ROLL_OVER, onButtonOver);
btn1_mc.addEventListener(MouseEvent.ROLL_OUT, onButtonOut);
function onButtonOver(e:MouseEvent):void
{
e.currentTarget.gotoAndPlay("over");
}
function onButtonOut(e:MouseEvent):void
{
e.currentTarget.gotoAndPlay("out");
}
var loader:Loader;
var urlRequest:URLRequest;
var tweens:Array = new Array();
var currentPage:MovieClip = null;
var nextPage:MovieClip = null;
function buttonClicked (e:Event):void {
loader = new Loader();
if (e.target == btn1_mc) {
try {
this.removeChild(static_mc);}
catch (err:Error) {
// nessun errore }
urlRequest = new URLRequest("page1.swf");
loader.load (urlRequest);
}
}
else if (e.target == page01Button) {
try {
this.removeChild(static_mc);}
catch (err:Error) {
// nessun errore }
urlRequest = new URLRequest("page2.swf");
loader.load (urlRequest);
}
}
else if (e.target == page02Button) {
try {
this.removeChild(static_mc);}
catch (err:Error) {
// nessun errore }
urlRequest = new URLRequest("page1.swf");
loader.load (urlRequest);
}
}
else {
try {
this.removeChild(static_mc);}
catch (err:Error) {
// nessun errore }
urlRequest = new URLRequest("page2.swf");
loader.load (urlRequest);
}
}
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);
}
function fileLoaded(e:Event):void {
nextPage = e.target.content;
if(currentPage != null) {
var tweenX:Tween = new Tween(currentPage, "x", Regular.easeOut,
currentPage.x, 200, 1, true);
var tweenAlpha:Tween = new Tween(currentPage, "alpha", Regular.easeOut,
1, 0, 1, true);
tweens.push(tweenX);
tweens.push(tweenAlpha);
tweenX.addEventListener(TweenEvent.MOTION_FINISH, currentPageGone);
}
else {
showNextPage();
}
}
function showNextPage():void {
var tweenX:Tween = new Tween(nextPage, "x", Regular.easeOut,
-200, 0, 2, true);
var tweenAlpha:Tween = new Tween(nextPage, "alpha", Regular.easeOut,
0, 1, 1, true);
tweens.push(tweenX);
tweens.push(tweenAlpha);
addChild(nextPage);
currentPage = nextPage;
}
function currentPageGone(e:Event):void {
removeChild(currentPage);
showNextPage();
}
Ho provato in vari modi, per ore ed ore, ma data la mia inesperienza (ho iniziato a studiare, ma non è cosa immediata capire bene come muoversi in ogni situazione..., ottengo sempre qualche errore
Ogni indicazione o esempio per questo tipo di situazione è molto gradito
In pratica e riassumendo, cliccando sui pulsanti (miniature), oltre all'animazione di entrata ed uscita dei vari SWF, vorrei inserire un testo descrittivo da XML esterno, il cui codice (il primo citato) funziona a se stante, ma non all'interno della galleria (seecondo codice citato).
Spero di non aver fatto troppa confusione nell'esposizione del problema![]()


, ottengo sempre qualche errore 
Rispondi quotando