Avatar billede zebratan Nybegynder
13. november 2009 - 23:41 Der er 2 kommentarer og
1 løsning

xml gallery tutorial og tekst

Hej

Jeg fiflet lidt med den her as3 xml gallery tutorial http://www.flashmagazine.com/Tutorials/detail/as3_photo_gallery/ Kunne nogen hjælpe mig med hvordan man loader en form for tekst ind sammen med de store billeder? Jeg kan godt sætte xml filen op, men jeg har brug for hjælp med as3 kodningen...

Her er koden. På forhånd tak for hjælpen.



import fl.containers.UILoader;
import caurina.transitions.*;

//---------loading the external xml file-------
var urlRequest:URLRequest = new URLRequest("pics.xml");
var urlLoader:URLLoader = new URLLoader();
var myXML:XML = new XML();
var xmlList:XMLList;
myXML.ignoreWhitespace = true;
urlLoader.addEventListener(Event.COMPLETE,fileLoaded);
urlLoader.load(urlRequest);
//--------holds the paths to the thumbnails-------
var arrayURL:Array = new Array();
//--------holds the paths to the big photos-------
var arrayName:Array = new Array();
//--------holds the thumbnail objects-------
var holderArray:Array = new Array();
//--------represents the number of collumns-------
var nrColumns:uint = 5;
//-------represents the container of our gallery
var sprite:Sprite = new Sprite();
addChild(sprite);
var thumb:Thumbnail;
//-------- the thumbnails container-------
var thumbsHolder:Sprite = new Sprite();
sprite.addChild(thumbsHolder);
//-------- the photoLoader container-------
var loaderHolder:Sprite = new Sprite();
loaderHolder.graphics.beginFill(0xffffff,1);
loaderHolder.graphics.drawRect(0,0,550,330);
loaderHolder.graphics.endFill();
loaderHolder.x = 1000;
loaderHolder.y = 10;
sprite.addChild(loaderHolder);
//-------- loads the big photo-------
var photoLoader:UILoader = new UILoader();
photoLoader.width = 540;
photoLoader.height = 320;
photoLoader.y = 5;
photoLoader.x = 5;
photoLoader.buttonMode = true;
photoLoader.addEventListener(MouseEvent.CLICK,onClickBack);
loaderHolder.addChild(photoLoader);

/* we loop through the xml file
populate the arrayURL, arrayName and position the thumbnalis*/
function fileLoaded(event:Event):void {
    myXML = XML(event.target.data);
    xmlList = myXML.children();
    for (var i:int=0; i<xmlList.length(); i++) {
        var picURL:String = xmlList[i].url;
        var picName:String = xmlList[i].big_url;
        arrayURL.push(picURL);
        arrayName.push(picName);
        holderArray[i] = new Thumbnail(arrayURL[i],i,arrayName[i]);
        holderArray[i].addEventListener(MouseEvent.CLICK,onClick);
        holderArray[i].name = arrayName[i];
        holderArray[i].buttonMode = true;
        if (i<nrColumns) {
            holderArray[i].y = 65;
            holderArray[i].x = i*110+65;
        } else {
            holderArray[i].y = holderArray[i-nrColumns].y+110;
            holderArray[i].x = holderArray[i-nrColumns].x;
        }
        thumbsHolder.addChild(holderArray[i]);
    }
}
//----handles the Click event added to the thumbnails--
function onClick(event:MouseEvent):void {
    photoLoader.source = event.currentTarget.name;
    Tweener.addTween(thumbsHolder, {x:-650, time:1, transition:"easeInElastic"});
    Tweener.addTween(loaderHolder, {x:10, time:1, transition:"easeInElastic"});
    Tweener.addTween(thumbsHolder, {alpha:0, time:1, transition:"linear"});
    Tweener.addTween(loaderHolder, {alpha:1, time:1, transition:"linear"});
}
//----handles the Click event added to the photoLoader----
function onClickBack(event:MouseEvent):void {
    Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInElastic"});
    Tweener.addTween(loaderHolder, {x:1000, time:1, transition:"easeInElastic"});
    Tweener.addTween(thumbsHolder, {alpha:1, time:2, transition:"linear"});
    Tweener.addTween(loaderHolder, {alpha:0, time:2, transition:"linear"});
}
Avatar billede kragekjaer Praktikant
14. november 2009 - 11:14 #1
sæt en node ind i xm for hvert store billede, fx <picTxt>billedetekst her</picTxt>

lav et array som holder disse, fx. var picTxtArray:Array = new Array()


i fileLoaded sæt:

var picText:String = xmlList[i].picTxt;
picTxtArray.push(picText);
Avatar billede zebratan Nybegynder
14. november 2009 - 14:00 #2
Det lyder egentlig rimelig simpelt. Jeg prøver det lige og vender så tilbage med point. Tak for det hurtige svar i øvrigt.
Avatar billede zebratan Nybegynder
16. november 2009 - 20:00 #3
Nå, det virker ikke for mig. Jeg har såvidt jeg kan se gjort det jeg skulle. Der meldes ikke fejl, men der sker på den anden side heller ingenting.

Jeg har et dynamisk tekstfelt til teksten(instancenavn:picTxt) og har også embedded fonttypen.

Hvad går galt? Mangler jeg at gøre et eller andet?

xmlfil:

<?xml version="1.0" encoding="utf-8"?>
<images>
  <image>
      <url>pics/img_1.png</url>
      <big_url>big_pics/img_1.png</big_url>
      <picTxt>billedetekst her</picTxt>
  </image>
</images>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester