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