Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > stage.getChildAt(i); - ERROR


Автор: nycmoma 20.5.2010, 11:41
import flash.display.DisplayObjectContainer;
function showChildren(dispObj:DisplayObject):void {
    for (var i:int = 0; i< dispObj.numChildren; i++) {
        var obj:DisplayObject = dispObj.getChildAt(i);
        if (obj is DisplayObjectContainer) {
            trace(obj.name, obj);
            showChildren(obj);
        } else {
            trace(obj);
        }
    }
}
showChildren(stage);


Scene 1, Layer 'Layer 1', Frame 1, Line 4    1061: Call to a possibly undefined method getChildAt through a reference with static type flash.display:DisplayObject.
Scene 1, Layer 'Layer 1', Frame 1, Line 3    1119: Access of possibly undefined property numChildren through a reference with static type flash.display:DisplayObject.

Где ошибка?

Автор: bars80080 20.5.2010, 13:48
а если использовать не DisplayObject, а MovieClip?

и импорт задать 
import flash.display.*;



что-то мне кажется, что любые отображаемые объекты должны быть типа MovieClip или Sprite, либо быть унаследованы от них

Автор: nycmoma 25.5.2010, 13:34
Здесь разбирался этот баг:
http://www.actionscript.org/forums/showthread.php3?t=183503

Правильный код:
Код

function showChildren(dispObj:DisplayObjectContainer):void 
{
    for (var i:uint = 0; i < dispObj.numChildren; i++) {
        var obj:DisplayObject = dispObj.getChildAt(i)
        if (obj is DisplayObjectContainer) {
            trace(obj.name, obj);
            showChildren(DisplayObjectContainer(obj));
        } else {
            trace(obj);
        }
    }
}
showChildren(stage);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)