2016-07-13 19 views
0

Ich habe eine Funken List-Steuerelement, das eine Seitenliste auf ListEvent.ITEM_ROLL_OVER Ereignis zeigt. Grundlegend zeigt es den Inhalt des Gegenstandes an, den Sie schweben. Ich würde auch ListEvent.ITEM_ROLL_OU T verwenden, es wieder zu verstecken, aber ich mag, dass die Benutzer in der Lage sein, darauf zu klicken (das Side) zu.Welche Implementierung von InteractiveObject, die leicht ist, sollte ich verwenden, um Mausfokus in Flex zu verfolgen?

Also, ich benutze MouseEvent.ROLL_OU T und überprüfen Sie die event.relatedObject ‚s-ID, um zu sehen, wo der Cursor ging. Ich habe ein unsichtbares Rechteck hinzugefügt, das die Sideliste überlagert, die etwas größer ist, damit es den Fokus erhält. Aber das tut es nicht.

googeln herum, denke ich, dass der Funke Rechteck kippt Fokus gewinnen, wie es Interactive nicht implementiert. Was soll ich verwenden?

Meine Logik:

protected function listOUT(event:MouseEvent):void 
{ 
    var obj:Object = event.relatedObject; 
    if (obj.id != "focusRect") 
    { 
     sidelist.visible = false; 
    } 
} 

Mein Kampf ist das Side sichtbar zu halten, wenn der Benutzer auf die Side den Cursor aus der Hauptliste bewegt. Andere Vorschläge außerhalb meiner Vorgehensweise sind ebenfalls willkommen.

aktualisieren (Bildlink) Red are the invisible Buttons

+0

Ich habe eine Idee. Aber ich gebe zu, ich weiß nicht, was eine Funkenliste ist. Frage: Welches Ereignis sollte passieren, wenn der Benutzer auf die Seitenliste klickt? –

+0

Es ist nur eine Liste, die Standard-Liste. Die andere Variante einer Liste in AFlashBuilder ist die MX-Liste. Es wird ein MouseEvent.CLICK geben, aber es ist nicht das Problem, da es einfach ist * dispatch-event * zu * event-listener * action. –

+0

Ich verstehe. Sie können nicht auf die Liste klicken, weil sie verschwindet, wenn Sie darauf zugreifen. Hmm ... kannst du sowas wie einen Boolean machen, der auf x- und y-Koordinaten der Maus auf der Bühne reagiert? –

Antwort

0
  • Auf ROLL_OVER wählen Sie das Element in der Mainlist, zeigen Sie das Side auf der Grundlage der SelectedItem in der Mainlist.
  • ausblenden Side, wenn kein Eintrag in der Hauptliste ausgewählt ist.
  • Deaktivieren Sie Elemente in der Hauptliste, wenn die Sidelist den Fokus verliert.

Darüber hinaus ist mx.core.UIComponent die hellste Komponente, die Fokusereignisse auslöst.

+0

Ich kann ein Problem sehen, da der Benutzer nicht unbedingt auf die Seitenliste klicken muss. Wenn er nie darüber schwebt, bleibt er sichtbar, wenn er nicht gebraucht wird. –

+0

Ok, ich habe es! Durch das Hinzufügen von 3 unsichtbaren Schaltflächen zu den verbleibenden Seiten wird die Seitenliste ihres mouse_over-Ereignisses ausgeblendet. Ich habe den Beitrag mit einem Bild aktualisiert. –

+0

Fügen Sie den Fokus auf die Seitenliste bei roll_over hinzu. Dann erhalten Sie den Fokus_out, wenn der Benutzer nie auf die Seitenliste geklickt hat. Diese drei unsichtbaren Schaltflächen blockieren die Interaktion mit den zugrunde liegenden Komponenten. Dies kann in einer späteren Phase zu Verwirrung führen. –