Я сделал простой код для слайд-шоу, который динамически загружает изображения из подпапки, в зависимости от того, что является списком в текстовом файле.FLASH AS3 - динамически загруженное слайд-шоу из файла Txt
код:
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);
}
}
а на самом деле она отлично работает для меня, что изображения отображаются в почти случайном порядке, за исключением.
Я думаю, что код загружает некоторые изображения слишком медленно, поэтому некоторые из них добавляются в мувиклип, хотя они загружаются после того, который должен идти дальше.
так, что я имею в виду:
1.png загружается
1.png добавляют
2.png загружается
3.png загружается
3.png добавлен
2.png добавляет
поэтому мой вопрос:
есть ли другой Проппер/лучший способ сделать это слайд-шоу загружать изображения из текстового файла, где только полные имена изображений (которые находятся в вложенной папке)?
спасибо за любые предложения.
g.r.
С помощью [ 'XML'] (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/XML.html). Пожалуйста, для любви к Богу, используйте ['XML'] (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/XML.html). – Marty
я бы, но я не должен! сайт, который я делаю для глупых beople, которые просто умны, чтобы написать имена изображений в текстовый файл! Если бы я хотел сделать все это в xml, я бы, возможно, сделал это уже;) – Ace
Мне легче объяснить, как копировать и вставлять узлы, такие как ' ', которые они могут отступать/разделяться на новых строках или независимо от того, что они хотят, не нарушая ничего, кроме того, что они калечат текстовый файл, который требует более строгой компоновки. В любом случае, ставьте очередь изображений, а не загружайте их сразу, чтобы исправить свою проблему. –
Marty