Ich habe einen einfachen Code für eine Diashow erstellt, die Bilder dynamisch aus einem Unterordner lädt, abhängig davon, was in einer Textdatei aufgelistet ist.FLASH AS3 - Dynamisch geladene Diashow aus Txt-Datei
der Code:
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class slideshow extends MovieClip {
public var listLoader:URLLoader;
public var newImgList:Array;
public var imgX:int = 0;
public var container:MovieClip;
public function slideshow() {
container = new MovieClip();
stage.addChild(container);
listLoader = new URLLoader(new URLRequest("./slideshow.txt"));
listLoader.addEventListener(Event.COMPLETE, initImages);
}
public function initImages(event:Event):void {
var imgList:Array = listLoader.data.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s+/);
newImgList = new Array();
for(var line:int = 0; line < imgList.length; line++) {
if(imgList[line].indexOf(".png") != -1 || imgList[line].indexOf(".jpg") != -1) {
newImgList.push(imgList[line]);
}
}
loadImage();
}
public function loadImage():void {
for(var loaderNum = 0; loaderNum < newImgList.length; loaderNum++) {
var imgLoader = new Loader();
imgLoader.load(new URLRequest("./slideshow/" + newImgList[loaderNum]));
imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgInit);
}
}
public function imgInit(event:Event):void {
var imgBmp:BitmapData = event.target.content.bitmapData;
var img:Bitmap = new Bitmap(imgBmp);
img.height = 150;
img.scaleX = img.scaleY;
img.y = 0;
img.x = imgX;
imgX = (imgX + img.width + 10);
container.addChild(img);
}
}
auch tatsächlich funktioniert es für mich in Ordnung, außer, dass die Bilder in einer fast zufälligen Reihenfolge angezeigt werden.
Ich denke, der Code lädt einige Bilder zu langsam, so dass einige von ihnen zum Movieclip hinzugefügt werden, obwohl sie nach dem geladen werden, der als nächstes gehen sollte.
so, was ich meine:
1.png geladen
1.png hinzugefügt wird
2.png geladen wird
3.png geladen wird
3.png wird hinzugefügt
2.png wird hinzugefügt
so meine Frage:
gibt es eine andere Propper/bessere Möglichkeit, dass die Diashow Last Bilder von einer Text-Datei, wo nur die vollständigen Namen der Bilder (die in einen machen Unterordner) sind aufgelistet?
danke für irgendwelche Vorschläge.
g.r.
Verwenden [ 'XML'] (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/XML.html). Bitte, um Himmels willen, benutze ['XML'] (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/XML.html). – Marty
würde ich, aber ich sollte nicht! Die Website, die ich mache, ist für dumme Leute, die nur schlau genug sind, um einige Bildnamen in eine Textdatei zu schreiben! wenn ich das ganze Ding in xml machen wollte, hätte ich es wahrscheinlich schon getan;) – Ace
Ich finde es einfacher zu erklären, wie man Knoten wie ' ' welche sie kopiert und einfügt kann neue Zeilen einrücken/trennen, oder was auch immer sie wollen, ohne alles zu brechen, als wenn sie eine Textdatei manipulieren, die ein strengeres Layout benötigt. Stellen Sie Ihre Bilder auf jeden Fall in eine Warteschlange, anstatt sie alle gleichzeitig zu laden, um Ihr Problem zu beheben. –
Marty