2009-07-29 6 views
1

Flexアプリケーション(Flex 3.3、ActionScript 3)で使用しているカスタムActionScriptコンポーネントがあります。このコンポーネントには、コンポーネントに提供されたdata要素のプロパティに基づいて可視性が動的に設定されるImageコントロールが含まれます。ActionScriptで動的な可視性を持つコンポーネントをレンダリングする方法は?

画像を表示するように設定しても、画面に表示されないという問題があります。画像をレンダリングするために必要なことがありますか?以下の関連コードのスニペット:

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; 
} 

答えて

1

私はを投稿した上記のコードは、実際にはになります。私はキャッチしたはずのコピーアンドペーストのバグにより、表示リストにイメージを追加していないことが分かりました。なぜそれが表示されなかったのですか?

2

コンポーネントを表示リストに追加しましたか?コンポーネントの表示リストに画像を追加したようですが、コンポーネント自体では何もしていない可能性があります。

+0

はい、コンポーネントは実際にはドロップインアイテムレンダラーとして使用されているため、アプリケーションの別の場所で使用されています。レンダラには他にも常に目に見えるコンポーネントがあることにも触れておきましょう。 – Dan

関連する問題