【发布时间】:2013-03-13 16:42:40
【问题描述】:
我正在 Flash 中创建一个横幅广告,它会在页面加载后显示来自 XML 文件的 3 个随机图像。我的问题是它偶尔会重复。我已经包含了我的代码,有什么建议吗?
var pHeight:Number = 84;
var pWidth:Number = 120;
var listLoader:URLLoader = new URLLoader( new URLRequest("www.example.com/example.xml") );
var picLoader:Loader = new Loader();
listLoader.addEventListener(Event.COMPLETE, gotList);
function gotList(evt:Event):void {
var xmlData:XML = XML(listLoader.data);
var numImages:Number = xmlData.picture.length();
var stImage:String = xmlData.picture[Math.floor(numImages*Math.random())].toString();
picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotPic);
picLoader.load( new URLRequest(stImage) );
listLoader.removeEventListener(Event.COMPLETE, gotList);
}
function gotPic(evt:Event):void {
var thisBmp:Bitmap = Bitmap(evt.target.content);
thisBmp.x = 0;
thisBmp.y = 0;
var thisWidth:Number = thisBmp.width;
var thisHeight:Number = thisBmp.height;
thisBmp.scaleX = pWidth/thisWidth;
thisBmp.scaleY = pHeight/thisHeight;
addChild(thisBmp);
picLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, gotPic);
}
【问题讨论】:
-
我只看到加载单个图像的代码。你的意思是一旦页面加载就会运行并且每次都应该显示一个随机图像?
-
我在一个movieclip中使用了代码,并且我使用了同一个movieclip 3次。例如,动画从翻转 3 张卡片开始,然后翻转一张,然后翻转下一张,最后翻转最后一张。在这 3 个中,我不想从 xml 文档中重复。
-
您是否希望在每次新加载页面时都必须显示接下来的三个图像。您的 XML 结构如何?
-
在这种情况下,我强烈建议将 XML 加载代码移出影片剪辑。您当前不必要地多次加载同一个文件。我会根据你的cmets为你制定一个答案。
标签: actionscript-3 flash flash-cs5 flash-cs4 banner