Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   SimpleButton: Как обратиться к дочернему объекту? (http://www.flasher.ru/forum/showthread.php?t=122809)

ekeeper 18.03.2009 22:52

SimpleButton: Как обратиться к дочернему объекту?
 
http://www.flasher.ru/forum/showthre...=122491&page=3

Я воспользовался кодом:
Код:

private function getChild(obj:Object, propertyName:String):Object {
                        if ( obj.hasOwnProperty(propertyName) )
                                return obj[propertyName];
                        return null;
                }

если obj есть мувиклип, то все хорошо, но если SimpleButton, то -
obj.hasOwnProperty(propertyName) возвращает true, но obj[propertyName] при этом возвращает null - как в данном случае правильно обращаться к чилду? Как надо поправить этот код?

silin 19.03.2009 00:27

у SimpleButton'а какое-то хитрое (свое внутреннее) адресное пространство: как ни называй детей внутри кнопки, компилятор их все равно "переобзовет"..
так и в AS2 было, в AS3 появилась возможность адресоваться к "кадрам" кнопки, но это мало чего дает в твоей задачке
например, создаем кнопку, что-то в нее пихаем/называем, а потом смотрим и видим нумерованые instance'ы вместо своих имен
Код AS3:

var butUpState:Sprite = but.upState as Sprite;
for (var i :int = 0; i < butUpState.numChildren; i++)
{
        var child:DisplayObject = butUpState.getChildAt(i);
        trace( "child : " + child.name );// instance1(2,..)
 
}

почему hasOwnProperty при этом показывает наличие 'старых' имен непонятно..
короче, плохоуправляемая структура, стоит задуматься: а надо ли туда лазить-то вообще?


Часовой пояс GMT +4, время: 01:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.