Note that there are some explanatory texts on larger screens.

plurals
  1. POas3 xml Slideshow
    primarykey
    data
    text
    <p>Below is the code of my slideshow, the problem I am having is that after 1st image that loads has the perfect size which I needs but the second image loads has different size I want it to be of same size as of 1st one. Also the images are not loading in a sequence. Can any expert figure out and solve the problem.</p> <pre><code>stop(); import gs.*; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //hides the description box until the image is loaded //hides the image until it is loaded theImage.alpha=0; loadingBar.visible = false; //variables to hold the final coordinates of the image tween var finalX:Number; var finalY:Number; //variable to hold the number of images in the XML var listLength:Number; //keeps track of what image should be displayed var currPainting:Number=0; //arrays to hold the contents of the XML, using this to allow //for the random order of the images var imageArray:Array = new Array(); //Loader event for the XML var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onLoaded); var xml:XML; loader.load(new URLRequest("paintings.xml")); function onLoaded(e:Event):void { //load XML xml=new XML(e.target.data); var il:XMLList=xml.images; listLength=il.length(); populateArray(); } function populateArray():void { //takes the properties defined in the XML and stores them //into arrays var i:Number; for (i = 0; i &lt; listLength; i++) { imageArray[i]=xml.images[i].pic; } beginImage(); } function beginImage():void { //grabs a random number between 0 and the number //of images in the array currPainting=Math.floor(Math.random()*imageArray.length); //load description var imageLoader = new Loader(); //catches errors if the loader cannot find the URL path imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, catchFunction); //actually loads the URL defined in the image array imageLoader.load(new URLRequest(imageArray[currPainting])); //adds a listener for while the image is loading imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imgLoading); //adds a listener for what to do when the image is done loading imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); function catchFunction(e:IOErrorEvent) { trace("Bad URL: " + imageArray[currPainting] + " does not exist"); //take out the bad URL from the array imageArray.splice(currPainting,1); //check to see if there are images left, //else restart the slideshow if (imageArray.length==0) { populateArray(); } else { beginImage(); } } function imgLoading(event:ProgressEvent):void{ //show the loading bar, and update the width //based on how much is loaded loadingBar.visible = true; loadingBar.x = stage.stageWidth/2; loadingBar.y = stage.stageHeight/3 loadingBar.bar.width = (event.bytesLoaded/event.bytesTotal)*100; } function imgLoaded(event:Event):void { loadingBar.visible = false; var scale:Number = stage.stageWidth * 0.292708 / theImage.width; //add the image and get the dimensions to center the image theImage.addChild(imageLoader); theImage.x = stage.stageWidth/2.85; theImage.y = 0; if(theImage.height * scale &gt; stage.stageHeight){ scale = stage.stageHeight * 0.704918 / theImage.height; } // apply the scale to the image theImage.scaleX = theImage.scaleY = scale; //take the contents of the loaded image and cast it as bitmap data //to allow for bitmap smoothing var image:Bitmap = imageLoader.content as Bitmap; image.smoothing=true; //start tween function easeIn(); } } function easeIn():void { TweenLite.to(theImage, 8, {onComplete:hideStuff}); TweenLite.to(theImage, 1, {alpha:1, overwrite:0}); } function hideStuff():void { TweenLite.to(theImage, 1, {alpha:0, onComplete:nextImage}); } function nextImage():void { //take out the image that was just displayed imageArray.splice(currPainting,1); //remove the picture theImage.removeChildAt(0); //start over if (imageArray.length==0) { populateArray(); } else { beginImage(); } } </code></pre> <p>Here is the xml</p> <pre><code> &lt;xml&gt; &lt;images&gt;&lt;pic&gt;portfolio1.jpg&lt;/pic&gt;&lt;/images&gt; &lt;images&gt;&lt;pic&gt;portfolio2.jpg&lt;/pic&gt;&lt;/images&gt; &lt;images&gt;&lt;pic&gt;portfolio3.jpg&lt;/pic&gt;&lt;/images&gt; &lt;images&gt;&lt;pic&gt;portfolio4.jpg&lt;/pic&gt;&lt;/images&gt; &lt;images&gt;&lt;pic&gt;portfolio5.jpg&lt;/pic&gt;&lt;/images&gt; &lt;/xml&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload