Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml AS3:如何创建线条库_Xml_Actionscript 3_Gallery_Line - Fatal编程技术网

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;