Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-09-2008, 15:12   #1 (permalink)
Neuer User
 
Benutzerbild von Anima
 
Registriert seit: Apr 2004
Ort: Bayern
Beiträge: 277
einfache Klasse für Mouse_over-Event

Hallo,

Ich möchte eine Klasse erstellen die mehrere MCs bei MOUSE_OVER zum Rotieren bringt. (aber nicht alle gleichzeitig, sondern halt nur den bei dem grad MOUSE_OVER ist)

Mein Ansatz dafür wäre:
ActionScript:
  1. package {
  2.     import flash.display.MovieClip;
  3.     import flash.events.*;
  4.    
  5.     public class Main extends MovieClip {
  6.         public function Main() {
  7.             mc1.addEventListener(MouseEvent.MOUSE_OVER, rollover);
  8.             function rollover(evt:MouseEvent):void {
  9.                 mc1.rotate += 10
  10.                 ;
  11.  
  12.             }
  13.         }
  14.     }
  15. }

Aber da steht ja "mc1" drin, d.h. die Klasse bringt mir ja im Grunde nichts, weil sie nur einen bestimmten MC anspricht. (und ich will ja mehrere ansprechen)
Nun muss ich aber irgendwem andres einen EventListener hinzufügen. Nur wem?
Außerdem erscheint die Fehlermeldung:
Zitat:
1120: Zugriff auf eine nicht definierte Eigenschaft mc1.
in Zeile 7,9
Da vermute ich mal, dass ich irgendwelche Klassen nicht mit import geladen habe, nur welche?


Danke für eure Hilfe,
greetz
__________________
Spit on your dicks!
We are not here to get your props!
We are here to turn anger to party!

-----------------------------------------
www.duprez.de
Anima ist offline   Mit Zitat antworten
Alt 01-09-2008, 15:55   #2 (permalink)
Klugscheisser
 
Registriert seit: Jun 2001
Ort: Düsseldorf
Beiträge: 1.354
In deiner Main Klasse ist halt keine Variable mc1 definiert.

Ich würd´s an deiner Stelle eher so machen, dass ich eine Basisklasse für die Dreh-MCs schreibe und die in der Bibliothek verknüpfe (ungetestet):

Code:
package {
	import flash.display.MovieClip;
	import flash.events.*;
	
	public class Rotator extends MovieClip {
		public function Rotator() {
			addEventListener(MouseEvent.MOUSE_OVER, rotate10Deg);
		}
		
		private function rotate10Deg( evt:MouseEvent ) :void {
			
			if (evt.type == MouseEvent.MOUSE_OVER) {
				MovieClip(evt.target).rotate += 10;
			}
		}
	}
}
T.Decay ist offline   Mit Zitat antworten
Alt 01-09-2008, 15:56   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Bei dem Event wird doch auch das auslösende Objekt mit übergeben. Du musst dann ja nur noch das currentTarget des auslösenden Objektes übergeben, bspw.:
PHP-Code:
public class Main extends MovieClip {
   public var 
mc1:MovieClip;
 
   public function 
Main() {
      
mc1.addEventListener(MouseEvent.MOUSE_OVERrolloverHandler);
   }

   public function 
rolloverHandler(evt:MouseEvent):void {
      
evt.currentTarget.rotate += 10;
   }

  Mit Zitat antworten
Alt 01-09-2008, 16:49   #4 (permalink)
Neuer User
 
Benutzerbild von Anima
 
Registriert seit: Apr 2004
Ort: Bayern
Beiträge: 277
Zitat:
Zitat von agedoubleju Beitrag anzeigen
Bei dem Event wird doch auch das auslösende Objekt mit übergeben. Du musst dann ja nur noch das currentTarget des auslösenden Objektes übergeben, bspw.:
PHP-Code:
public class Main extends MovieClip {
   public var 
mc1:MovieClip;
 
   public function 
Main() {
      
mc1.addEventListener(MouseEvent.MOUSE_OVERrolloverHandler);
   }

   public function 
rolloverHandler(evt:MouseEvent):void {
      
evt.currentTarget.rotate += 10;
   }

Danke erstmal.
Aber mit deinem Code erhalte ich die Fehlermeldung:
Zitat:
Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
Was heißt das?

greetz
__________________
Spit on your dicks!
We are not here to get your props!
We are here to turn anger to party!

-----------------------------------------
www.duprez.de
Anima ist offline   Mit Zitat antworten
Alt 01-09-2008, 17:09   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Was heißt das?
Du versuchst auf ein Objekt zuzugreifen, dass es (noch) nicht gibt oder das schon wieder gelöscht ist. Hast du denn auf der Bühne überhaupt eine MC-Instanz "mc1" liegen?
  Mit Zitat antworten
Alt 01-09-2008, 17:33   #6 (permalink)
Neuer User
 
Benutzerbild von Anima
 
Registriert seit: Apr 2004
Ort: Bayern
Beiträge: 277
Ja hab ich.
__________________
Spit on your dicks!
We are not here to get your props!
We are here to turn anger to party!

-----------------------------------------
www.duprez.de
Anima 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



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

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


Copyright ©1999 – 2012 Marc Thiele