Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-08-2011, 10:55   #1 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
OOP focus problem

Hallo,
ich melde mich auch nochmal,
nachdem ich in letzter Zeit zum stillen Mitleser mutiert bin.

Das Problem:
Ich habe eine Classe YourSchiff in der sich zwei EventListener befinden.
(Gemäß alle Objekte machen selbst was sie brauchen, solange(so ist es zumindest immer bei mir) die 'Welt' in der sie sich befinden nicht ihr Veto einlegt)

Leider "schießen" die EventListener nicht.
Hier die Vererbugs Strucktur,
Backround und YourSchiff sind wichtig.

(Manche Classen zur Übersicht entfernt)


in Backround wird ein
Mc geadded,
auf den später in GameobjectBoard die GameObjecte(YourSchiff)
geadded werden.

addEventListener(Event.ADDED_TO_STAGE, addStageListener);
habe ich schon versucht.

aber die Listener Wollen nicht

Viele Grüße Opi3
Angehängte Grafiken
Dateityp: gif Vererbung.GIF (11,4 KB, 32x aufgerufen)
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;
Opi3 ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:04   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Auf welche Events hast Du denn wo, wie und wann Listener registriert und woran erkennst Du das sie »nicht wollen«?

Wieso erben eigentlich alle Deine Klassen bei MovieClip? Enthalten die wirklich alle Animationen? Falls nicht sollten sie bei Sprite erben.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (05-08-2011 um 11:06 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:11   #3 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
danke für die Antwort.

bei meinen EventListenern handelt es sich um:
KeyboardEvents.


Zitat:
Wieso erben eigentlich alle Deine Klassen bei MovieClip? Enthalten die wirklich alle Animationen? Falls nicht sollten sie bei Sprite erben.
von Backround,CostumStage und GameObjectBoard abgesehen eigentlich schon.

(Wobei ich sagen muss,
das einige Geschosstypen erst auf dem Papier existieren.
Werden aber wahrscheinlich auch animiert. )

Opi3
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;
Opi3 ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:17   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Opi3 Beitrag anzeigen
bei meinen EventListenern handelt es sich um:
KeyboardEvents.
KeyboardEvents würde ich (entgegen der sonstigen Gepflogenheiten) immer auf stage abfangen. Du EventListener sollten dabei von den betreffenden Objekten frühstens bei Event.ADDED_TO_STAGE registriert und bei Event.REMOVED_FROM_STAGE wieder entfernt werden.

Ich werd dieses Thema mal in den AS3-BEreich verschieben. Da passt es thematisch eher hin.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:32   #5 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
Oh, da stell ich mich wohl gerade ein wenig dum...

mein "EventListener addCode" sieht jetzt so aus,
trotzdem reagieren die Eventlistener:
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyi sDown); stage.addEventListener(KeyboardEvent.KEY_UP,keyisU p);
nicht auf einen Tastendruck


PHP-Code:
addEventListener(Event.ADDED_TO_STAGEaddStageListener);

function 
addStageListener(ev:Event):void {
                
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyisDown);      stage.addEventListener(KeyboardEvent.KEY_UP,keyisUp);

 
removeEventListener(Event.ADDED_TO_STAGE,addStageListener);



in CostumStage sieht das so aus:

(aus Backround: protected var backH:MovieClip = new MovieClip(); )

PHP-Code:
//Fügt ein element hinzu
        
public function addGameElement(element:GameObjecthaslogic:Boolean true)
        {
            if (
element is collisableObject)
            {
                if (
JAFS.debugg){
                    
trace("new collisableObject");
                }
                
collisableAdds.push(element);
                if (
haslogic){
                
forcollisableAdds.push(element);
                }
            }else{
                if (
JAFS.debugg){
                    
trace("new staticObject");
                }
                
staticAdds.push(element);
                if (
haslogic){
                
forstaticAdds.push(element);
                }
            }
            
backH.addChild(element);
            
element.youAreAdded();
        } 

opi3

...stellt sich nur dumm
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;

Geändert von Opi3 (05-08-2011 um 11:36 Uhr)
Opi3 ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:50   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Und die Events werden nicht dispatched?

Der FlashPlayer selbst hat aber schon den Tatsturfocus? Hast Du vorher mal reingeklickt?

Hast Du Dir mal tracen lassen, ob und wann addStageListener ausgeführt wird?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:54   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Generell könnte das Listener-Handling so aussehen:
PHP-Code:
// Im Konstruktor
    
if(stageaddStageListener();
    else 
addEventListener(Event.ADDED_TO_STAGEaddStageListener);


function 
addStageListener(event:Event null):void {
    
removeEventListener(Event.ADDED_TO_STAGEaddStageListener);
    
addEventListener(Event.REMOVED_FROM_STAGEremoveStageListener);
    
    
// Listener hinzufügen


function 
removeStageListener(event:Event null):void {
    
removeEventListener(Event.REMOVED_FROM_STAGEremoveStageListener);
    
addEventListener(Event.ADDED_TO_STAGEaddStageListener);
    
    
// Listener entfernen

__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-08-2011, 11:58   #8 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
Zitat:
Hast Du Dir mal tracen lassen, ob und wann addStageListener ausgeführt wird?
Selbst verständlich,
sonst wüste ich ja nicht wo das Problem liegt.

PHP-Code:

//Verkürzte functionen

function addStageListener(ev:Event):void 
{

            
trace("EventListener geadded");
}
function 
keyisDown(e:KeyboardEvent)
{
            
trace("now");

ausgabe:

Zitat:
new collisableObject
EventListener geadded

//Und hier habe ich dan eine Taste gedrückt:

Zitat:
Hast Du vorher mal reingeklickt?
ja


edit:
ich habe dein 'Generelles-Listener-Handling' ausprobiert, und es funktioniert immer noch nicht.


Opi3
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;

Geändert von Opi3 (05-08-2011 um 12:07 Uhr)
Opi3 ist offline   Mit Zitat antworten
Alt 05-08-2011, 12:12   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Seltsam
  • Hast Du vielleicht noch andere KeyboardEventListener registriert, die die Eventverarbeitung abbrechen?
  • Arbeitest Du zufällig im Vollbildmodus? Da werden nämlich keine KeyBoardEvents dispatched!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-08-2011, 12:38   #10 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
Zitat:
Arbeitest Du zufällig im Vollbildmodus? Da werden nämlich keine KeyBoardEvents dispatched!

Wenn ich gewusst hätte das das wichtig wäre,
hätte ich es gesagt.

Dar mit ist das Problem wohl gelöst

Vielen dank für deine Ausdauer beim Helfen.

Viele Grüße Opi3
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;
Opi3 ist offline   Mit Zitat antworten
Alt 05-08-2011, 13:11   #11 (permalink)
Neuer User
 
Benutzerbild von Opi3
 
Registriert seit: Dec 2010
Beiträge: 363
meine lösung:

Das das ganze sowieso auf dem Desktop stattfinden soll,
habe ich es jetzt in eine "Air" Datei konvertiert (warum habe ich eigentlich nicht von Anfang an Air verwendet?) und benutze zum in "Fullscreen" setzen
HTML-Code:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE


Viele Grüße Opi3
__________________
Es gibt 7 Milliarden Menschen und einer davon bin ich.

Eine Pizza mit r = z und dicke = a hat v = Pi*z*z*a;

Geändert von Opi3 (05-08-2011 um 13:12 Uhr)
Opi3 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
eventlistener, focus, oop

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit TextField-Focus laxersaz Mobile Flash und Flash Lite 2 26-02-2007 13:00
focus problem? tomsen77 Komponenten und SmartClips 2 23-06-2006 15:12
focus Problem bei Eingabefeld purewhite Flash 8 13 14-04-2006 08:17
Textfeld Focus Problem millfoo ActionScript 2 2 20-02-2006 16:04
get.Focus Problem!!! fantomix ActionScript 1 24 29-06-2002 13:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele