As3号和数组

时间:2015-10-25 13:39:23

标签: actionscript-3

您好我正在尝试使用gg类创建一个动态的小图片。当我点击较小的一张时,我希望得到一张大图。 但问题是我不知道如何获得 这是代码

    var box:Box = new Box ();
    addChild(box);

    var myXml:XML;
    var yp:Number = 50;

    var xmlLoader:URLLoader = new URLLoader ();
    xmlLoader.load(new URLRequest ("filXml.xml"));
    xmlLoader.addEventListener(Event.COMPLETE,readXml);

1 个答案:

答案 0 :(得分:0)

在您的XML中,您为“大”图片使用了不同的属性名称,这是不推荐的。您必须对存在于同一父元素中的所有XML行使用相同的属性,因此您可以这样做,例如:

<pictures>
    <picture small="pic1.jpg" big="Bpic1.jpg"></picture>
    <picture small="pic2.jpg" big="Bpic2.jpg"></picture>
    <picture small="pic3.jpg" big="Bpic3.jpg"></picture>
    <picture small="pic4.jpg" big="Bpic4.jpg"></picture>
    <picture small="pic5.jpg" big="Bpic5.jpg"></picture>
    <picture small="pic6.jpg" big="Bpic6.jpg"></picture>
    <picture small="pic7.jpg" big="Bpic7.jpg"></picture>
    <picture small="pic8.jpg" big="Bpic8.jpg"></picture>
</pictures>

然后在您的ActionScript代码中,您可以使用一个数组来存储您的大图片名称并将小图片索引存储在其name对象的Loader属性中,然后当它出现时按下,你只需从大图片阵列中选择大图片。

var big_pictures:Array = [];

function readXml(e:Event):void
{
    xml = new XML(e.target.data);

    for (var i:int = 0; i < xml.picture.length(); i++)
    {
        var xml_line:XML = xml.picture[i];

        // store big pictures names
        big_pictures.push(xml_line.@big);

        var loader:UILoader = new UILoader();
            loader.name = String(i);

            // ...

            loader.addEventListener(MouseEvent.CLICK, showBigPic);              
        addChild(loader);
    }       
}

function showBigPic (e:MouseEvent):void
{
    trace(big_pictures[int(e.currentTarget.name)]);
}

希望可以提供帮助。