Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-08-2011, 23:32   #1 (permalink)
Neuer User
 
Benutzerbild von apfelbonbon
 
Registriert seit: May 2009
Beiträge: 86
Funktionszugriff in einer AS-Klasse

Ich habe eine AS-Klasse mit folgendem Inhalt:

PHP-Code:
class Test {

    function 
doIt():Void {
                
         
mc.onRollOver = function() {
         
doA();
         }

             
mc.onRollOut = function() {
          
doB();
          }
    }
    
       function 
doA():Void {
              
trace("tue A");
        }

        function 
doB():Void {
              
trace("tue B");
       }

Es wird aber, wenn die jeweiligen Ereignisse eintreten, weder doA() noch doB() ausgeführt. Auch ein this.doB(); oder _root.doB(); ändert daran nichts. Gebe ich statt doA() zum Beispiel die nicht vorhandene Funktion doC(); ein, sagt er mir, dass diese Funktion nicht existiert. Also hat er ja offenbar doA() gefunden, führt sie aber nicht aus. Warum?
apfelbonbon ist offline   Mit Zitat antworten
Alt 18-08-2011, 08:41   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Dir ist aber schon klar, was Klassen eigentlich sind und dass diese üblicherweise einen Konstruktor haben?! Falls nicht solltest Du das mal nachlesen und Dir dann diese Fragen beantworten:
  • Wer oder was ruft die Funktion doIt auf?
  • Gibt es ein mit dieser Klasse verknüpftes Bibliothekssymbol?
  • Wenn ja, gibt es in diesem Symbol eine Instanz namens mc?
  • Instanziierst Du diese Klasse überhaupt? Wenn ja wie?
__________________
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 gerade online   Mit Zitat antworten
Alt 18-08-2011, 12:40   #3 (permalink)
Neuer User
 
Benutzerbild von apfelbonbon
 
Registriert seit: May 2009
Beiträge: 86
Ja, ich habe nur den relevanten Teil hier rein kopiert. Die ist sehr viel größer und es funktioniert auch alles, so, wie es soll. Nur eben diese Funktionszuweisung nicht.

Hätte ja sein können, dass ich grundsätzlich etwas falsch gemacht habe. Dann muss ich noch mal selbst nachschauen, woran es liegt. Trotzdem vielen Dank für die Hilfe (nicht nur hier).
apfelbonbon ist offline   Mit Zitat antworten
Alt 18-08-2011, 13:32   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
was das auch sein soll, es ist komisch ;-)

class Test {
function doIt():Void {
mc.onRollOver = function() {
doA();
}

wo kommt dieses mc her?
und wenn du dein onRollOver ausführst, dann bist du 'im' mc und das ist keine Test-classe somit kann es auch keine funktionen dieser klasse kennen. ohje ist das lange her, in AS2 musst du delegieren. such mal danach im forum. oder dem mc den scope geben .. unschön.

steige lieber und unbedingt auf AS3 um!


function doIt():Void {
mc.scope=this;
mc.onRollOver = function() {
this.scope.doA();
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-08-2011 um 13:36 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 18-08-2011, 14:34   #5 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
da fänd ich ne closure schöner, als irgenwelche Movieclips mit Eigenschaften zuzumüllen, nur damit die Methoden sich darauf besinnen, wo sie hingehören.

PHP-Code:
function doIt():Void
{
    var 
_this this;
    
mc.onRollOver = function() {
        
_this.doA();
    }

    
mc.onRollOut = function() {
        
_this.doB();
    }

tja, ja. ist schon gut, dass die Sprache sich weiterentwickelt hat.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 18-08-2011, 15:25   #6 (permalink)
Neuer User
 
Benutzerbild von apfelbonbon
 
Registriert seit: May 2009
Beiträge: 86
Zitat:
Zitat von thomas_E Beitrag anzeigen
da fänd ich ne closure schöner, als irgenwelche Movieclips mit Eigenschaften zuzumüllen, nur damit die Methoden sich darauf besinnen, wo sie hingehören.

PHP-Code:
function doIt():Void
{
    var 
_this this;
    
mc.onRollOver = function() {
        
_this.doA();
    }

    
mc.onRollOut = function() {
        
_this.doB();
    }

tja, ja. ist schon gut, dass die Sprache sich weiterentwickelt hat.
Damit funktioniert's, danke!
apfelbonbon ist offline   Mit Zitat antworten
Alt 18-08-2011, 15:28   #7 (permalink)
variuse
 
Benutzerbild von SaKiN
 
Registriert seit: Mar 2004
Ort: Berlin
Beiträge: 117
Delegate unter AS2

Hallo,

ah ja, der gute alte Dauerbrenner Delegate... nach so vielen Jahren immer noch für Einiges an Verwirrung gut

Versuch mal das:

Code:
import mx.utils.Delegate;

class Test 
{
    public var mc:MovieClip;
	
    function doIt():Void 
    {
         mc.onRollOver = Delegate.create(this, doA);
         mc.onRollOut = Delegate.create(this, doB);
    }
    
    function doA():Void 
    {
    	trace("tue A");	
    }

    function doB():Void 
    {
        trace("tue B");
    }
}
Das Warum und Wieso erfährst du hier.

Viele Grüße,
SaKiN
__________________
variuse | xing.com

Geändert von SaKiN (18-08-2011 um 15:36 Uhr)
SaKiN 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
[Flash CS5] Funktionszugriff in verschiedenen Schlüsselbildern Neo2012 Flash Einsteiger 9 06-01-2011 08:05
[Flash CS5] Attribute der Main-Klasse über die Instanz einer anderwen Klasse ändern! WillyDilly Flash Einsteiger 11 25-10-2010 12:34
funktionszugriff aus geladenem Film uncle.sam ActionScript 3 5 25-02-2009 15:56
Array aus einer xmlLoader Klasse in einer anderen Klasse verwenden Alpha.ONE ActionScript 2 1 19-06-2007 17:48
Methode einer Klasse aus anderer Klasse aufrufen Chris M. Softwarearchitektur und Entwurfsmuster 5 05-01-2005 15:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele