J'ai un contrôle d'arborescence avec un rendu d'élément personnalisé. Le rendu de l'élément a différents états qui doivent être définis pendant le déplacement d'un élément sur le rendu de l'élément. Je comprends à la lecture de cet article http://forums.adobe.com/message/2091088 que la «bonne manière» de faire ceci est de surcharger la méthode «getCurrentState» et d'ajouter du texte. Je fais ça.Comment puis-je forcer un itemrenderer arborescente à être redessiné lors d'une opération glisser-déposer?
Maintenant, dans mon contrôle d'arbre, je gère l'événement glisser sur et obtenir une référence à l'itemrenderer qui est en train d'être déplacé et j'ai mis la propriété booléenne 'dragOver' à true. Maintenant j'ai juste besoin de forcer mon itemRenderer à redessiner. Je ne peux pas comprendre cela. Une solution de contournement consiste simplement à définir l'état actuel de itemRenderer.
Ma question alors, comment puis-je forcer mon itemRenderer à actualiser? (Et je l'ai essayé d'appeler validateNow, invalideDisplayList/Propriétés/Taille, sans résultat)
<?xml version="1.0" encoding="utf-8"?>
<s:MXTreeItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.events.DragEvent;
import mx.events.FlexEvent;
import spark.layouts.supportClasses.DropLocation;
public var dragOver:Boolean = false;
override protected function getCurrentRendererState():String
{
var skinState:String = super.getCurrentRendererState();
if(dragOver)
skinState += "AndDragOver";
trace('getCurrentRendererState', skinState);
return skinState;
}
]]>
</fx:Script>
<s:states>
<s:State name="normal" />
<s:State name="hovered" />
<s:State name="selected" />
<s:State name="normalAndDragOver" stateGroups="dragOverGroup" />
<s:State name="hoveredAndDragOver" stateGroups="dragOverGroup" />
<s:State name="selectedAndDragOver" stateGroups="dragOverGroup" />
</s:states>
...
Non ... ne semble pas fonctionner. Mon intuition est que le glisser-déposer interfère (dragEnabled, dropEnabled, dragMoveEnabled tout vrai). Il y a un dropIndicator pour l'arbre ... mais j'ai besoin des renderers pour montrer leur état visuel. Je vais jeter un coup d'œil au jira d'Adobe et voir si je déterre quelque chose. – swidnikk