Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-02-2012, 17:15   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 25
stage.addEventListener entfernen

Hallo zusammen,

ich habe ein etwas kompliziertes Problem, aber vllt hat sich ja schonmal jemand damit beschäftigt.

Es handelt sich um eine Art Shop:
Ich habe eine SWF mit ungefähr 20 Bildern. In jedem Bild gibt es einen MovieClip, der ein Produkt enthält. Jeder dieser MovieClips hat ein eigenes Hintergrundbild, welches innerhalb des MovieClips auf die richtige Größe skaliert wird.

Hier der Code dazu:

ActionScript:
  1. stage.scaleMode = StageScaleMode.NO_SCALE;
  2. stage.align = StageAlign.TOP_LEFT;
  3. function resizeBild(bild:MovieClip):void
  4. {
  5.     bild.y = 0;
  6.  
  7.     bild.width = stage.stageWidth;
  8.     bild.scaleY = bild.scaleX;
  9.     if (bild.height < stage.stageHeight)
  10.     {
  11.         bild.y = 0;
  12.         bild.height = stage.stageHeight;
  13.         bild.scaleX = bild.scaleY;
  14.     }
  15. }
  16.  
  17. resizeBild(background_mc);
  18.  
  19. stage.addEventListener(Event.RESIZE, resizePics);
  20. function resizePics(e:Event):void{
  21.     resizeBild(background_mc);
  22. }


Mein Problem ist jetzt folgendes: Wenn ich zum nächsten Produkt wechsel und einen Resize mache kriege ich folgende Fehlermeldung:

Code:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at main_fla::x_69/resizeBild()
	at main_fla::x_69/resizePics()

Der MovieClip, ist nicht mehr auf der Bühne, aber der EventListener ist trotzdem noch an der stage registriert.

Ich weiß, dass ich das ganze über:

ActionScript:
  1. stage.removeEventListener(Event.RESIZE, resizePics);

lösen könnte. Allerdings, kann der User in beliebiger Reihenfolge zwischen den Produkten hin und her klicken. Deswegen weiß ich nicht, wann und wie ich den EventListener removen soll.

Hat jemand dafür eine Lösung?? Bitte, Bitte :-)

Liebe Grüße

Geändert von Martin Kraft (13-02-2012 um 17:22 Uhr)
balou17 ist offline   Mit Zitat antworten
Alt 13-02-2012, 17:24   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von balou17 Beitrag anzeigen
Ich weiß, dass ich das ganze über:

ActionScript:
  1. stage.removeEventListener(Event.RESIZE, resizePics);

lösen könnte. Allerdings, kann der User in beliebiger Reihenfolge zwischen den Produkten hin und her klicken. Deswegen weiß ich nicht, wann und wie ich den EventListener removen soll.
Registrier einfach einen lokalen Listener auf Event.REMOVED_FROM_STAGE, der dann seinerseits den Event.RESIZE-Listener entfernt!

P.S.: Hier im Forum solltest Du Deinen Code als [AS], [PHP] oder [CODE] markieren (sowie ich es oben für Dich getan habe), dann kann man Deinen Post besser lesen und die Einzüge bleiben erhalten!
__________________
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 (13-02-2012 um 17:26 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 14-02-2012, 07:07   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 25
Natürlich!! Vielen Dank, es funktioniert :-) Irgendwann kennt man auch alle Events :-)
balou17 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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
stage.addEventListener Probleme StayFrosty ActionScript 3 12 23-02-2011 14:37
stage.addEventListener auf die nackte Bühne? stiffmeister ActionScript 3 4 14-04-2009 11:51
palette_mc.stage.addEventListener... Geht das?? sara11 Flash Einsteiger 11 01-08-2008 23:26
stage.addEventListener tomtitom Flash CS3 Professional 3 26-04-2008 14:43
addEventListener entfernen harego ActionScript 1 1 30-03-2005 14:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele