| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2002
Beiträge: 4
| eigener Eventhandler
Hallo allerseits, ich möchte einen eigenen Eventhandler für ein Drap und Drop Event erstellen. Aber leider funktioniert das nicht so wie ich mir das denke. Das Event wird zwar getriggert, aber der handler im der Dokumentenklasse wird nicht aufgerufen. was mach ich falsch? Hier der Code, im Anhand findet sich das ganze Kunstwerk. Danke im voraus, thomas Code: // Eventklasse
public class DragEvent extends Event{
public static const START_DRAG_EVENT:String = "START_DRAG_EVENT";
public static const STOP_DRAG_EVENT:String = "STOP_DRAG_EVENT";
public var data;
public function DragEvent(type:String, data) {
super(type);
this.data = data;
trace('Event:'+type);
}
public override function clone():Event{
return new DragEvent(this.type,this.data);
}
public override function toString():String{
return formatToString("DragEvent", "type", "bubbles", "cancelable", "eventPhase", "data");
}
}
// Klasse des MovieClip der über die Bühne gezogen werden kann
public class Kasten extends MovieClip
{
public function Kasten()
{
this.addEventListener(MouseEvent.MOUSE_DOWN, this.startDragEvent);
this.addEventListener(MouseEvent.MOUSE_UP, this.stopDragEvent);
}
private function startDragEvent(event:MouseEvent):void {
this.startDrag();
var dragEvent:DragEvent=new DragEvent(DragEvent.START_DRAG_EVENT, this)
this.dispatchEvent(dragEvent);
}
private function stopDragEvent(event:MouseEvent):void {
this.stopDrag();
var dragEvent:DragEvent=new DragEvent(DragEvent.STOP_DRAG_EVENT, this)
this.dispatchEvent(dragEvent);
}
}
// Dokumentenklasse
public class MainClass extends MovieClip{
public function MainClass() {
this.addEventListener(DragEvent.START_DRAG_EVENT, this.handleStartDrag);
this.addEventListener(DragEvent.STOP_DRAG_EVENT, this.handleStopDrag);
}
private function handleStartDrag(event:DragEvent){
trace("Eventhandler MainClass:Sprite wurde hier angefassr:"+event.data.x);
}
private function handleStopDrag(event:DragEvent){
trace("Eventhandler MainClass:Sprite wurde hier losgelassen:"+event.data.x);
}
} Geändert von 1tomtom (31-12-2009 um 11:58 Uhr) Grund: fehler beim posten |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Berlin | Friedrichshain
Beiträge: 3.561
|
leider fehlt die .fla in deinem zip..
__________________ 8bm | join ff@BOINC formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2009
Beiträge: 25
|
also ich denke du musst der instanz von dem kasten den eventListener adden nicht der MainClass. Die MainClass dispatcht ja nicht das event. Da gibt es also nichts zu hören. hoffe es hilft ps: also gib dem MovieClip einen Instanznamen und dann kannst du ihn so ansprechen mcBox.addEventListener(DragEvent.START_DRAG_EVENT, this.handleStartDrag); mcBox.addEventListener(DragEvent.STOP_DRAG_EVENT, this.handleStopDrag); Geändert von herrmannplatz (31-12-2009 um 14:00 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2002
Beiträge: 4
|
hmm, wenn ich doch aber der MainClass ein Event auffangen und behandeln möchte, welches durch das loslassen oder anfassen eines Kasten-Objektes ausgelöst wird? Wie stelle ich das an, dass in in einer Klasse ein Event aulöse, welches ich in einer anderen Klasse behandle?
|
| | |
| | #6 (permalink) |
| Alter User Registriert seit: Nov 2006 Ort: München
Beiträge: 485
|
suchst Du das? ActionScript:
ActionScript:
|
| | |
| | #7 (permalink) |
| Alter User Registriert seit: Nov 2006 Ort: München
Beiträge: 485
|
und so wenn du auch noch eine eigene Eventklasse brauchst, z.B. um Werte zu übergeben. ActionScript:
ActionScript:
ActionScript:
|
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jun 2009
Beiträge: 25
|
hmm jetzt bin ich etwas irritiert wo es hingehen soll. du hast doch schon die Kastenklasse die DragEvents feuert. kannst ja auch instanzen der kastenklasse erstellen. PHP-Code: Geändert von herrmannplatz (01-01-2010 um 21:18 Uhr) |
| | |
| | #9 (permalink) | |
| Alter User Registriert seit: Nov 2006 Ort: München
Beiträge: 485
|
Sorry, wollte niemanden verwirren, meine Antwort kam auf Grund des folgenden Satzes. Zitat:
Geändert von Linowitch (02-01-2010 um 09:05 Uhr) | |
| | |
| | #10 (permalink) | |
| Neuer User Registriert seit: Jan 2002
Beiträge: 4
| Zitat:
und nun werd ich mir noch der Vollständigkeit halber das Ding mit einer seperaten EventDispatcher-Klasse anschauen :-). Danke erstmal für die Klarsicht! Gruß, Thomas | |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| as3, events |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Eventhandler Newbeefrage | hypergrafx | ActionScript 3 | 3 | 12-05-2009 15:44 |
| Button Eventhandler | falconry | Komponenten und SmartClips | 1 | 26-11-2007 16:40 |
| Combobox und Eventhandler | castor_2001 | Komponenten und SmartClips | 5 | 23-08-2005 22:27 |
| this in Funktionen und EventHandler | atothek | Flash MX 2004 | 3 | 17-02-2004 14:02 |
| EventHandler | th. | Softwarearchitektur und Entwurfsmuster | 15 | 25-01-2002 09:00 |