Convert AS2 to AS3 (XML / Slideshow)

  • public2
  • Born
  • Born
  • public2
  • Posts: 1

Post 3+ Months Ago

Hi everyone,

I've created a slideshow in AS2 (with some help from a tutorial) but it is in AS2 unfortunately. I need it to be in AS3 and I've tried to read some online tutorials and other online materials on AS3 and the difference, but I just seem to run my head against the wall every time.

I don't know if it's a comprehensive task to ask but I take my chances and try anyway. Please let me know if this is way too much to convert / translate

My AS2 code looks like this:
Code: [ Select ]
 
 
function loadXML(loaded) {
 
if (loaded) {
 
xmlNode = this.firstChild;
 
image = [];
 
description = [];
 
//url = [];
 
delay = [];
 
total = xmlNode.childNodes.length;
 
for (i=0; i<total; i++) {
 
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
 
description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
 
//url[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
 
delay[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
 
}
 
 
 
firstImage();
 
} else {
 
content = "Billedet er ikke hentet!";
 
}
 
}
 
my_Date = new Date();
 
xmlData = new XML();
 
xmlData.ignoreWhite = true;
 
xmlData.onLoad = loadXML;
 
xmlData.load("images.xml");
 
 
 
/////////////////////////////////////
 
listen = new Object();
 
listen.onKeyDown = function() {
 
if (Key.getCode() == Key.LEFT) {
 
prevImage();
 
} else if (Key.getCode() == Key.RIGHT) {
 
nextImage();
 
}
 
};
 
Key.addListener(listen);
 
previous_btn.onRelease = function() {
 
clearInterval(myInterval);      
 
prevImage();
 
};
 
next_btn.onRelease = function() {
 
clearInterval(myInterval);
 
nextImage();
 
 
 
};
 
 
 
play_btn._visible = 0;
 
p = 0;
 
pause_btn.onRelease = function() {
 
                             clearInterval(myInterval);
 
                             pause_btn._visible = 0;
 
                             play_btn._visible = 100;
 
};
 
play_btn.onRelease = function() {
 
                             myInterval = setInterval(pause_slideshow, delay[p]);
 
                             pause_btn._visible = 100;
 
                             play_btn._visible = 0;
 
};
 
 
 
/////////////////////////////////////
 
p = 0;
 
this.onEnterFrame = function() {
 
filesize = picture.getBytesTotal();
 
loaded = picture.getBytesLoaded();
 
preloader._visible = true;
 
if (loaded != filesize) {
 
preloader.preload_bar._xscale = 100*loaded/filesize;
 
} else {
 
preloader._visible = false;
 
if (picture._alpha<100) {
 
picture._alpha += 5;
 
}
 
}
 
};
 
 
 
function  nextImage()  {
 
                             pause_btn._visible = 100;
 
                             play_btn._visible = 0;
 
                             previous_btn._visible = 100;
 
                             next_btn._visible = 100;
 
                             if (p<(total-1)) {
 
                                                          p++;
 
                                                          if (loaded == filesize) {
 
                                                                                       picture._alpha = 0;
 
                                                                                       picture.loadMovie(image[p], 1);
 
                                                                                       desc_txt.text = description[p];
 
                                                                                       url_btn = url[p];
 
                                                                                       go_btn = url[p];
 
                                                                                       picture_num();
 
                                                                                       slideshow();
 
                                                          }
 
                             }else{
 
                                                          p = 0;
 
                                                          if (loaded == filesize) {
 
                                                                                       picture._alpha = 0;
 
                                                                                       picture.loadMovie(image[p], 1);
 
                                                                                       desc_txt.text = description[p];
 
                                                                                       //url_btn = url[p];
 
                                                                                       //go_btn = url[p];
 
                                                                                       picture_num();
 
                                                                                       slideshow();
 
                                                          }
 
                             }
 
}
 
 
 
function prevImage() {
 
                             pause_btn._visible = 100;
 
                             play_btn._visible = 0;
 
                             if (p>0) {
 
                                                          p--;
 
                                                          picture._alpha = 0;
 
                                                          picture.loadMovie(image[p], 1);
 
                                                          desc_txt.text = description[p];
 
                                                          //url_btn = url[p];
 
                                                          //go_btn = url[p];
 
                                                          picture_num();
 
                             }else{
 
                                                          p = total - 1;
 
                                                          picture._alpha = 0;
 
                                                          picture.loadMovie(image[p], 1);
 
                                                          desc_txt.text = description[p];
 
                                                          picture_num();
 
                             }                          
 
}
 
 
 
 
 
function firstImage() {
 
//                         previous_btn._visible = 0;
 
//                         next_btn._visible = 100;
 
if (loaded == filesize) {
 
picture._alpha = 0;
 
picture.loadMovie(image[0], 1);
 
desc_txt.text = description[0];
 
//url_btn = url[0];
 
//go_btn = url[0];
 
picture_num();
 
slideshow();
 
 
 
 
 
}
 
}
 
function picture_num() {
 
current_pos = p+1;
 
pos_txt.text = current_pos+" / "+total;
 
}
 
 
 
function slideshow() {
 
myInterval = setInterval(pause_slideshow, delay[p]);
 
}
 
 
 
function pause_slideshow() {
 
clearInterval(myInterval);
 
if (p == (total-1)) {
 
p = 0;
 
firstImage();
 
} else {
 
nextImage();
 
}
 
}
 
 
  1.  
  2.  
  3. function loadXML(loaded) {
  4.  
  5. if (loaded) {
  6.  
  7. xmlNode = this.firstChild;
  8.  
  9. image = [];
  10.  
  11. description = [];
  12.  
  13. //url = [];
  14.  
  15. delay = [];
  16.  
  17. total = xmlNode.childNodes.length;
  18.  
  19. for (i=0; i<total; i++) {
  20.  
  21. image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
  22.  
  23. description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
  24.  
  25. //url[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
  26.  
  27. delay[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
  28.  
  29. }
  30.  
  31.  
  32.  
  33. firstImage();
  34.  
  35. } else {
  36.  
  37. content = "Billedet er ikke hentet!";
  38.  
  39. }
  40.  
  41. }
  42.  
  43. my_Date = new Date();
  44.  
  45. xmlData = new XML();
  46.  
  47. xmlData.ignoreWhite = true;
  48.  
  49. xmlData.onLoad = loadXML;
  50.  
  51. xmlData.load("images.xml");
  52.  
  53.  
  54.  
  55. /////////////////////////////////////
  56.  
  57. listen = new Object();
  58.  
  59. listen.onKeyDown = function() {
  60.  
  61. if (Key.getCode() == Key.LEFT) {
  62.  
  63. prevImage();
  64.  
  65. } else if (Key.getCode() == Key.RIGHT) {
  66.  
  67. nextImage();
  68.  
  69. }
  70.  
  71. };
  72.  
  73. Key.addListener(listen);
  74.  
  75. previous_btn.onRelease = function() {
  76.  
  77. clearInterval(myInterval);      
  78.  
  79. prevImage();
  80.  
  81. };
  82.  
  83. next_btn.onRelease = function() {
  84.  
  85. clearInterval(myInterval);
  86.  
  87. nextImage();
  88.  
  89.  
  90.  
  91. };
  92.  
  93.  
  94.  
  95. play_btn._visible = 0;
  96.  
  97. p = 0;
  98.  
  99. pause_btn.onRelease = function() {
  100.  
  101.                              clearInterval(myInterval);
  102.  
  103.                              pause_btn._visible = 0;
  104.  
  105.                              play_btn._visible = 100;
  106.  
  107. };
  108.  
  109. play_btn.onRelease = function() {
  110.  
  111.                              myInterval = setInterval(pause_slideshow, delay[p]);
  112.  
  113.                              pause_btn._visible = 100;
  114.  
  115.                              play_btn._visible = 0;
  116.  
  117. };
  118.  
  119.  
  120.  
  121. /////////////////////////////////////
  122.  
  123. p = 0;
  124.  
  125. this.onEnterFrame = function() {
  126.  
  127. filesize = picture.getBytesTotal();
  128.  
  129. loaded = picture.getBytesLoaded();
  130.  
  131. preloader._visible = true;
  132.  
  133. if (loaded != filesize) {
  134.  
  135. preloader.preload_bar._xscale = 100*loaded/filesize;
  136.  
  137. } else {
  138.  
  139. preloader._visible = false;
  140.  
  141. if (picture._alpha<100) {
  142.  
  143. picture._alpha += 5;
  144.  
  145. }
  146.  
  147. }
  148.  
  149. };
  150.  
  151.  
  152.  
  153. function  nextImage()  {
  154.  
  155.                              pause_btn._visible = 100;
  156.  
  157.                              play_btn._visible = 0;
  158.  
  159.                              previous_btn._visible = 100;
  160.  
  161.                              next_btn._visible = 100;
  162.  
  163.                              if (p<(total-1)) {
  164.  
  165.                                                           p++;
  166.  
  167.                                                           if (loaded == filesize) {
  168.  
  169.                                                                                        picture._alpha = 0;
  170.  
  171.                                                                                        picture.loadMovie(image[p], 1);
  172.  
  173.                                                                                        desc_txt.text = description[p];
  174.  
  175.                                                                                        url_btn = url[p];
  176.  
  177.                                                                                        go_btn = url[p];
  178.  
  179.                                                                                        picture_num();
  180.  
  181.                                                                                        slideshow();
  182.  
  183.                                                           }
  184.  
  185.                              }else{
  186.  
  187.                                                           p = 0;
  188.  
  189.                                                           if (loaded == filesize) {
  190.  
  191.                                                                                        picture._alpha = 0;
  192.  
  193.                                                                                        picture.loadMovie(image[p], 1);
  194.  
  195.                                                                                        desc_txt.text = description[p];
  196.  
  197.                                                                                        //url_btn = url[p];
  198.  
  199.                                                                                        //go_btn = url[p];
  200.  
  201.                                                                                        picture_num();
  202.  
  203.                                                                                        slideshow();
  204.  
  205.                                                           }
  206.  
  207.                              }
  208.  
  209. }
  210.  
  211.  
  212.  
  213. function prevImage() {
  214.  
  215.                              pause_btn._visible = 100;
  216.  
  217.                              play_btn._visible = 0;
  218.  
  219.                              if (p>0) {
  220.  
  221.                                                           p--;
  222.  
  223.                                                           picture._alpha = 0;
  224.  
  225.                                                           picture.loadMovie(image[p], 1);
  226.  
  227.                                                           desc_txt.text = description[p];
  228.  
  229.                                                           //url_btn = url[p];
  230.  
  231.                                                           //go_btn = url[p];
  232.  
  233.                                                           picture_num();
  234.  
  235.                              }else{
  236.  
  237.                                                           p = total - 1;
  238.  
  239.                                                           picture._alpha = 0;
  240.  
  241.                                                           picture.loadMovie(image[p], 1);
  242.  
  243.                                                           desc_txt.text = description[p];
  244.  
  245.                                                           picture_num();
  246.  
  247.                              }                          
  248.  
  249. }
  250.  
  251.  
  252.  
  253.  
  254.  
  255. function firstImage() {
  256.  
  257. //                         previous_btn._visible = 0;
  258.  
  259. //                         next_btn._visible = 100;
  260.  
  261. if (loaded == filesize) {
  262.  
  263. picture._alpha = 0;
  264.  
  265. picture.loadMovie(image[0], 1);
  266.  
  267. desc_txt.text = description[0];
  268.  
  269. //url_btn = url[0];
  270.  
  271. //go_btn = url[0];
  272.  
  273. picture_num();
  274.  
  275. slideshow();
  276.  
  277.  
  278.  
  279.  
  280.  
  281. }
  282.  
  283. }
  284.  
  285. function picture_num() {
  286.  
  287. current_pos = p+1;
  288.  
  289. pos_txt.text = current_pos+" / "+total;
  290.  
  291. }
  292.  
  293.  
  294.  
  295. function slideshow() {
  296.  
  297. myInterval = setInterval(pause_slideshow, delay[p]);
  298.  
  299. }
  300.  
  301.  
  302.  
  303. function pause_slideshow() {
  304.  
  305. clearInterval(myInterval);
  306.  
  307. if (p == (total-1)) {
  308.  
  309. p = 0;
  310.  
  311. firstImage();
  312.  
  313. } else {
  314.  
  315. nextImage();
  316.  
  317. }
  318.  
  319. }
  320.  
  321.  

I short it has to load images from a XML file where a tag with caption (image title) and a tag with the delay settings.

So far I’ve discovered that the XML loading in the very beginning is completely different in AS3 so I founded a tutorial on how to load XML data into flash. That is working alright but my next problem is to reset all the other variables (like caption, delay etc.) and I’ve read that XML in AS3 has a much faster and smarter way to load the tags. Now I just have to found out how that’s done :-)

Thanks in advance
Public2
  • CStrauss
  • Graduate
  • Graduate
  • User avatar
  • Posts: 122
  • Loc: St. Louis MO. USA

Post 3+ Months Ago

I'm currently working on something loading images/swf files from xml data that is actually pulled and from a database but I can share some of my code which luckly is similar to what you have so should take to long to copy and past. But yeah going from AS2 to AS3 can be frustrating my advice is start with some basic AS3 stuff to get comfortable with the new syntax.

some notes about this code first of all my arrays ie: file_path, total files etc. where actually declared in another AS file but you could declare them with no value in them before this function runs. If that makes sense so if you see a variable in my code that wasn't defined just keep in mind it was declared elsewhere.

Code to pull data from xml file.
Code: [ Select ]
 
// function to load the xml data from xml file
function loadTheXML(){
    var xmlURLLoader:URLLoader = new URLLoader();
    var xmlURLRequest:URLRequest = new URLRequest(urlVar);
    xmlURLLoader.load(xmlURLRequest);
    xmlURLLoader.addEventListener(Event.COMPLETE,sortTheXML);
   
    // function to sort the xml data
    function sortTheXML(event:Event):void{
        var theXMLData:XML = new XML(xmlURLLoader.data);
        var a:Number = theXMLData.file_path.length();
        totalFiles = a;
        var b:Number = 0;
       
        // loop through xml data and load arrays
        while(b < a){
            FilePath.push(theXMLData.file_path[b]);
            FileDesc.push(theXMLData.file_description[b]);
            FileDate.push(theXMLData.file_date[b]);
            b = b + 1;                                 
        } // End While Loop
       
        // call function to load the thumbs
        loadTheThumbs();
    }// End sortTheXML function
 
  1.  
  2. // function to load the xml data from xml file
  3. function loadTheXML(){
  4.     var xmlURLLoader:URLLoader = new URLLoader();
  5.     var xmlURLRequest:URLRequest = new URLRequest(urlVar);
  6.     xmlURLLoader.load(xmlURLRequest);
  7.     xmlURLLoader.addEventListener(Event.COMPLETE,sortTheXML);
  8.    
  9.     // function to sort the xml data
  10.     function sortTheXML(event:Event):void{
  11.         var theXMLData:XML = new XML(xmlURLLoader.data);
  12.         var a:Number = theXMLData.file_path.length();
  13.         totalFiles = a;
  14.         var b:Number = 0;
  15.        
  16.         // loop through xml data and load arrays
  17.         while(b < a){
  18.             FilePath.push(theXMLData.file_path[b]);
  19.             FileDesc.push(theXMLData.file_description[b]);
  20.             FileDate.push(theXMLData.file_date[b]);
  21.             b = b + 1;                                 
  22.         } // End While Loop
  23.        
  24.         // call function to load the thumbs
  25.         loadTheThumbs();
  26.     }// End sortTheXML function
  27.  


next section of code actually loads the thumbs into a movie clip that was created dynamically called thumbs. You can create this on stage your self or do it like I did dynamically doesn't matter just need it a movie clip or something to load in the images and your own figuration of how you want them lined up.

Code: [ Select ]
 
// function for loading the thumbnails in to movie clips
function loadTheThumbs(){
    var thumbLoader:Loader = new Loader();
    var thumbRequest:URLRequest = new URLRequest(FilePath[c]);
    thumbLoader.load(thumbRequest);
    thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,whenThumbsLoad);
   
    // function to act as a loop to load all the thumbnails
    function whenThumbsLoad(event:Event):void{
       
               // XS and xSpacing are variables I have declared outside this function. xs has an initial value of 0 and xSpacing has a initial value of 125. Basically is used to set up positioning on the x value of the stage.
 
        thumbLoader.x = (xs * xSpacing) + 8;
        xs = xs + 1;
     
      thumb.addChild(thumbLoader);
     
           
        c = c + 1;
        if( c < totalFiles){
            // call function again
            loadTheThumbs();
        }else{
            //trace("No More Files To Load");
        }
    }// End whenThumbsLoad Function
 
} // End loadTheThumbs function
 
 
  1.  
  2. // function for loading the thumbnails in to movie clips
  3. function loadTheThumbs(){
  4.     var thumbLoader:Loader = new Loader();
  5.     var thumbRequest:URLRequest = new URLRequest(FilePath[c]);
  6.     thumbLoader.load(thumbRequest);
  7.     thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,whenThumbsLoad);
  8.    
  9.     // function to act as a loop to load all the thumbnails
  10.     function whenThumbsLoad(event:Event):void{
  11.        
  12.                // XS and xSpacing are variables I have declared outside this function. xs has an initial value of 0 and xSpacing has a initial value of 125. Basically is used to set up positioning on the x value of the stage.
  13.  
  14.         thumbLoader.x = (xs * xSpacing) + 8;
  15.         xs = xs + 1;
  16.      
  17.       thumb.addChild(thumbLoader);
  18.      
  19.            
  20.         c = c + 1;
  21.         if( c < totalFiles){
  22.             // call function again
  23.             loadTheThumbs();
  24.         }else{
  25.             //trace("No More Files To Load");
  26.         }
  27.     }// End whenThumbsLoad Function
  28.  
  29. } // End loadTheThumbs function
  30.  
  31.  


Again this might be diffrent from what your trying to do but should give you an idea how to pull data from xml and place it on stage. I hope I explained this well im not the best explainer im more of a do-er then an explainer if you have any questions about my code let me know I will try to explain.

Post Information

  • Total Posts in this topic: 2 posts
  • Users browsing this forum: No registered users and 7 guests
  • You cannot post new topics in this forum
  • You cannot reply to topics in this forum
  • You cannot edit your posts in this forum
  • You cannot delete your posts in this forum
  • You cannot post attachments in this forum
 
 

© 1998-2014. Ozzu® is a registered trademark of Unmelted, LLC.