首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前阵列MC位置

前阵列MC位置
EN

Stack Overflow用户
提问于 2009-10-12 08:02:57
回答 1查看 175关注 0票数 0

我基本上是想创建一个树形图。我已经创建了第一个级别,我希望将其放入一个数组中,以便下一个级别能够从前一个级别/数组中获得属性。

,但现在看来,我无法用自己独特的“名称”将圆圈推入circlesNewArray。有什么问题吗?

我仍然不确定用max 2分隔构造动态意图/数据/mc代码的方式是否正确,因为我认为这涉及到2到3数组,以便在加载数据时使其保持在相同的级别之间,并在执行级别分离时重新分组。

如果你有任何更好的想法,这也将是非常感谢。谢谢!

私有函数dataLevel():void {

代码语言:javascript
复制
        rootLevel=new Array();
        rootLevel.push(20,200);

        newArray=new Array();

        var no1:Number=1;
        var no2:Number=2;

        if (rootLevel is Array==true) {
            createBranch(rootLevel);


            for (var j:Number=0; j<rootLevel.length; j++) {
                newArray[j]=new Array();
                newArray[j].push(j);
                createBranch(newArray[j]);
            }
        }
    }


    //-------------------------------------------------------------------


    private function createBranch(runningObj:Object):void {

        circlesNewArray = new Array();
        var i2=i-1;

        for (var i:Number=0; i<runningObj.length; i++) {

            circles = new MovieClip();
            var empty=null;
            circles.graphics.beginFill(0xFF2222);
            circles.graphics.drawCircle(empty,empty,10);
            circles.graphics.endFill();

            //Passing 2 cirls in an Array
            circlesNewArray[i]=new Array();
            circles.name="circles"+i;

            circlesNewArray[i].push(circles[i]);

            if (runningObj==rootLevel) {
                circles.x=trunks.x - (Math.floor(Math.random()*100)-50);
                circles.y=trunks.y - (Math.floor(Math.random()*100));
            } else if (runningObj!=rootLevel) {
                circles.x=circlesNewArray[i2]-(Math.floor(Math.random()*100)-50);
                circles.y=circlesNewArray[i2]-(Math.floor(Math.random()*100));
            }

            //trace(circles.x, circles.y);

            circles.buttonMode=true;
            circles.addEventListener(MouseEvent.CLICK, clickTarget);

            addChild(circles);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2009-10-12 08:26:10

在声明变量i之前,您正在访问它。因此,i2将被指定为NaN。不幸的是,编译器忽略了这类错误。在flash中,方法的所有局部变量,无论在代码中的何处声明,都是在方法的开头声明的,但只有在代码到达相应的执行行时才会为它们分配值。

代码语言:javascript
复制
var i2=i-1;//value of i and hence that of i2 is NaN.
for (var i:Number=0; i<runningObj.length; i++)

因为i2NaN,所以访问circlesNewArray[i2]的调用失败。如果希望i2具有值(i-1),则从for循环中调用i2 = i - 1;

顺便说一句,你想用这行代码做什么?

代码语言:javascript
复制
circles.x=circlesNewArray[i2]-(Math.floor(Math.random()*100)-50);

您将数组推入circlesNewArray,然后以数字的形式访问它们?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1553311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档