Как сделать компонент с динамической видимостью в ActionScript? - PullRequest
1 голос
/ 29 июля 2009

У меня есть пользовательский компонент ActionScript, который я использую в приложении Flex (Flex 3.3, ActionScript 3). Этот компонент содержит элемент управления Image, видимость которого устанавливается динамически на основе свойства элемента data, предоставленного компоненту.

Проблема в том, что даже когда я устанавливаю изображение видимым, оно не будет отображаться на экране. Есть ли что-то конкретное, что мне нужно сделать, чтобы изображение отображалось? Фрагменты кода ниже:

override public function set data( value:Object ):void
{
    _data = value;

    if( _data ) {

        if( _myImg ) {
            _myImg.source = someImageClass;
            _myImg.visible = _data.visibilityProperty;
            _myImg.includeInLayout = _data.visibilityProperty;
            _myImg.invalidateProperties();
            _myImg.invalidateDisplayList();
        }
    }

    invalidateProperties();
    invalidateDisplayList();
}

override protected function createChildren():void
{
    super.createChildren();

    if( !_myImg ) {
        _myImg = new Image();
        _myImg.height = 16;
        _myImg.width = 16;
        addChild( _myImg );
    }
}

override protected function updateDisplayList( unscaledWidth:Number, unscaledHeight:Number ):void
{
    super.updateDisplayList( unscaledWidth, unscaledHeight );

    _myImg.x = calculatedXCoordinate;
    _myImg.y = calculatedYCoordinate;
}

Ответы [ 2 ]

2 голосов
/ 29 июля 2009

Вы добавили компонент в список отображения? Похоже, вы добавили изображение в список отображения компонента, но потенциально ничего не сделали с самим компонентом.

1 голос
/ 30 июля 2009

Оказывается, вышеприведенный код, который я выложил , будет , на самом деле, будет работать правильно. Я обнаружил, что из-за ошибки копирования и вставки, которую я должен был обнаружить, я не добавлял изображение в список отображения, поэтому оно никогда не появлялось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...