J'ai un composant ActionScript personnalisé que j'utilise dans une application Flex (Flex 3.3, ActionScript 3). Ce composant contient un contrôle Image dont la visibilité est définie dynamiquement en fonction d'une propriété de l'élément data
fourni au composant.Comment rendre un composant avec une visibilité dynamique dans ActionScript?
Le problème est que même lorsque je définis l'image pour qu'elle soit visible, elle ne s'affiche pas à l'écran. Y a-t-il quelque chose de spécifique que je dois faire pour que l'image soit rendue? Extraits de code approprié ci-dessous:
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;
}
Oui, le composant est en fait utilisé comme rendu d'élément drop-in, il est donc utilisé ailleurs dans mon application. Je devrais également mentionner qu'il y a d'autres composants toujours visibles dans mon moteur de rendu, et ils affichent très bien. – Dan