Xml AS3:如何创建线条库
我正在尝试创建一个线条库:所有照片都设置在另一个旁边,但照片的宽度不同。我必须将Xml AS3:如何创建线条库,xml,actionscript-3,gallery,line,Xml,Actionscript 3,Gallery,Line,我正在尝试创建一个线条库:所有照片都设置在另一个旁边,但照片的宽度不同。我必须将x位置放在函数callThumbs()中,但我在函数thumbload(e:Event)中获得所需的宽度 我将它们放入变量中最小宽度和最小高度。我见过一些使用回调函数的示例,但我无法在代码中实现这一点。有人能帮忙吗 var myXMLLoader:URLLoader = new URLLoader(); myXMLLoader.load(new URLRequest("images.xml")); myXMLLoad
x
位置放在函数callThumbs()
中,但我在函数thumbload(e:Event)中获得所需的宽度
我将它们放入变量中
最小宽度
和最小高度
。我见过一些使用回调函数的示例,但我无法在代码中实现这一点。有人能帮忙吗
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("images.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;
var currentX:Number = 0;
var miniWidth:Number;
var miniHeight:Number;
if (stage)
{
initialize();
}
else
{
addEventListener(Event.ADDED_TO_STAGE,initialize);
}
function initialize(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE,initialize);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE,onResizeDoc);
stage.dispatchEvent(new Event(Event.RESIZE));
stage.addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
resizeMyDoc();
}
function onResizeDoc(event:Event = null):void
{
resizeMyDoc();
}
function resizeMyDoc():void
{
var sw:Number = stage.stageWidth;
var sh:Number = stage.stageHeight;
if (stage.displayState == StageDisplayState.FULL_SCREEN)
{
//code nor relevant to my issue
}
else
{
//code nor relevant to my issue
}
}
function processXML(e:Event):void
{
var myXML:XML = new XML(e.target.data);
my_thumb_width = myXML. @ WIDTH;
my_thumb_height = myXML. @ HEIGHT;
my_images = myXML.IMAGE;
my_total = my_images.length();
preloaders_mc = new MovieClip();
preloaders_mc.x = miniaturki.x;
preloaders_mc.y = miniaturki.y;
addChild(preloaders_mc);
miniaturki.buttonMode = true;
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function callThumbs():void
{
for (var i:Number = 0; i < my_total; i++)
{
var thumb_url = my_images[i].@THUMB;;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
}
}
function thumbLoaded(e:Event):void
{
var my_thumb:Loader = Loader(e.target.loader);
miniaturki.addChild(my_thumb);
miniWidth = my_thumb.width;
miniHeight = my_thumb.height;
trace(miniWidth);
trace(miniHeight);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
function onRemove(e:Event=null):void
{
stage.removeEventListener(Event.RESIZE, onResizeDoc);
}
第二个问题是调整大小处理程序
。当我移除他时,图片会被加载,但是当调整大小处理程序
停留时,我必须首先调整窗口的大小以查看图片。早些时候,当我遇到同样的问题时,我只需要添加一个DispatchEvent
:stage.DispatchEvent(新事件(Event.RESIZE))代码>,但我添加了它,问题仍然存在
有人能帮忙吗 将加载程序存储在数组中-将所有类似的内容存储在数组中
在顶部创建阵列:
var aThumbs:Array = new Array();
将装载机添加到后台时,将其推入:
var my_thumb:Loader = Loader(e.target.loader);
miniaturki.addChild(my_thumb);
aThumbs.push(my_thumb);
然后使用数组进行如下引用:
iGetThumbWidth = aThumbs[i].width;
所以,这并不是说给人们100多行代码,让他们把事情搞砸,然后弄明白你想做什么。请向我们展示重现您的问题的最低代码,并解释您是如何尝试修复它的。
iGetThumbWidth = aThumbs[i].width;