繁体   English   中英

AS3:在其功能之外,无法获得动态创建的MC的长度

[英]AS3: Cant get the length of dynamically created MC, outside of its function

我想在加载动态文件夹的所有内容之后得到parent_mc的大小,我试过:

function initmyWidth():Number
            {
                var myWidth:Number = galleryArr.length * 400;
                return myWidth;
            }

它给了我正确的数字,如果它嵌套在函数onGalleryLoaded中,但在乐趣之外,它跟踪0.有一种方法可以将galleryArr.length传递到onGalleryLoaded函数之外吗?

 var galleryArr:Array = [];

var parent_mc:Sprite = new Sprite();

addChild(parent_mc);
parent_mc.y = 112;
parent_mc.x = 300;

function onGalleryLoaded(e:Event):void
{

    var imageX:int = 0;
    var imageY:int = 0;


    for each (var image:Sprite in galleryArr)
    {

        var my_mc:MovieClip = new MovieClip();

        my_mc.addChild(image);



        parent_mc.addChild(my_mc);

        my_mc.width = 400;
        my_mc.height = 400;
        my_mc.x -= parent_mc.width;
        my_mc.y = imageY;


        imageX -=  my_mc.width + PADDING_X;
        if ( (imageX+my_mc.width) > stage.stageWidth )
        {
            imageX = parent_mc.width;
            imageY = 0;
        }
    }
}

在知道gallyerArr有多少元素之前,您不能指望获得准确的宽度。 这不是从函数外部传递值的情况,而是在异步进程尚未完成时尝试同步执行某些操作的情况(在本例中为load事件)。

一旦onGalleryLoaded被调用, initmyWidth将如预期运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM