使用addChild时阶段会发生变化?

时间:2010-01-06 22:40:13

标签: flash actionscript-3 debugging flash-cs4

我在Flash CS4中遇到了一个非常奇怪的ActionScript 3错误。我将影片剪辑添加到for循环中的舞台,然后将它们移出视图,以便我可以将它们拉入并在需要时将其删除。

我已经将问题缩小到了一个程度,我知道每次使用addChild()将一个影片剪辑添加到舞台时,舞台会向右移动一个像素。我知道这听起来很奇怪,但它确实是真的......每次添加影片剪辑时,y轴上的0行都会移动到右边的一个像素。我不知道这是怎么回事。

以下是正在开展工作的代码:

        private function setupSlides():void 
    {
        for(x = 0; x < TOTAL_SLIDES; x++)
        {
            var ClassReference:Class = getDefinitionByName("Slide" + (x+1)) as Class;
            var s:MovieClip = new ClassReference() as MovieClip;
            s.x = 9999;
            s.y = 9999;             
            addChild(s);
            slides[x] = s;
        }
    }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

发帖后,我注意到我没有声明循环计数器变量(x)。我声明了,奇怪的渲染消失了。我想知道为什么它只是没有给我一个未声明的变量错误?

这是固定代码:

        private function setupSlides():void 
    {
        for(var x:int = 0; x < TOTAL_SLIDES; x++)
        {
            var ClassReference:Class = getDefinitionByName("Slide" + (x+1)) as Class;
            var s:MovieClip = new ClassReference() as MovieClip;
            s.x = 9999;
            s.y = 9999;             
            addChild(s);
            slides[x] = s;
        }
    }