Actionscript 3.0 -> Wie das überschreiben einer geschützten Methode von UIComponent
Ich möchte eine benutzerdefinierte Schaltfläche erstellen in ActionScript.
Dies ist mein code:
import flash.events.MouseEvent;
import mx.controls.Alert;
import spark.components.Button;
public class BookViewButton extends Button
{
public function BookViewButton()
{
super();
}
override protected function mouseOver(event:MouseEvent,increase:int,newImageSource:String):void{
Alert.show("mouseOver for new class works");
}
}
Aber Adobe Flash Builder Signale die Methode überschreiben Zeile als Fehler an.
Habe ich versucht zu ändern, die neue Signatur der Methode so, dass Sie passen würden, genau, wie das ist: (ich dachte, der Fehler könnte sein, weil ich war das hinzufügen zusätzlicher Parameter zu der mouseOver
- Funktion, so dass Flex könnte es nicht anerkannt haben, da ein überwiegendes)
override protected function mouseOver(event:MouseEvent):void{
Alert.show("mouseOver for new class works");
}
Aber trotzdem funktioniert es nicht. Gleiche kleine rote Ausrufezeichen kommt, um zu signalisieren einen Fehler.
Ich würde schätzen jede Hilfe. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welche SDK-version verwenden Sie, wenn Sie
mouseOver()
Methode in SparkButton
Hierarchie?Spark-button hat
mouseEventHandler()
Methode überschreiben:Und es ist besser nach den Fehler-text, die IDE gibt Sie. Um es zu kopieren, öffnen Sie einfach
Problems
Blick in Flash Builder finden Sie Ihr Fehler-Nachricht, und kopieren Sie es über das Kontextmenü.mouseOver()
Methode zu überschreiben?Können Sie nicht verwenden
override
hier, weil die Basis-KlasseButton
keine MethodemouseOver
zu überschreiben.Wenn Sie entfernen Sie das override-Schlüsselwort, es sollte funktionieren. Das heißt, Sie brauchen, um tatsächlich fügen Sie einen listener für Ihre Funktion, für die es aufgerufen wird, wenn Sie mit der Maus über. Wie diese:
Info auf
super();
Es gibt keine Notwendigkeit, rufen Sie super im Konstruktor der erweiternden Klasse, es sei denn, es gibt Argumente, die Sie möchten, zu analysieren. Beispiel.
Und die erweiternde Klasse:
Wenn wir das tun:
Haben Sie die Ausgabe:
Jedoch, wenn Sie wollten Argumente für den Konstruktor, müssen Sie analysieren, Sie den Konstruktor der Klasse vergrößern Sie mit
super()
. Etwa so:Nun diese Ausgabe wird "asdf":
super()
), wie Sie es in Ihrem code?Button
Klasse, ich rufe den superclass-Konstruktor und dann schaffen Sie zusätzliche Verhalten für meine benutzerdefinierte Schaltfläche. Aber anscheinend nicht. Danke.