Flashhilfe.de - Flash Community

3 Klassen verbinden... [Flash 7]

 


AntwortenRegistrieren Seite1  

Sebastian#1
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

20.09.2003, 18:36

Hi,

mir ist klar das man Klassen mit extends verbinden / vererben kann.

Nur wie könnte man dieses Script vereinfachen, also so das MenueClass, die Klasse MCClass erbt?
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Classes.MenueClass {   
   public function getTxt(i:Number) {
      return "Irgend was";
   }
}

class Classes.MCClass extends MovieClip {   
   public function setFunction(i:Number) {
      onRollOver = function() {
         trace(_root.obj_menue.getTxt(i));
      }
   }
}


<- das Script wurde natürlich stark verkleinert. Denke so wird das Problem deutlicher.

Momentan mach ich es über das _root.obj_menue Object der Klasse MenueClass. Nur find ich das nicht sehr gelungen. Dynamischer wäre es wenn man die Klasse direkt ansprechen könnte.

Da ich aber schon von MovieClip erbe, weis ich nun nicht wie ich eine dritte Klasse an die MCClass Klasse vererben kann.

Das erben möchte ich ausschließlich in der Klasse machen und nicht über die Objecte der Klasse.

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 20.09.03 um 18:38 Uhr
MiM#2
Benutzerbild von MiM
Beiträge: 8
Registriert: Jul 2002

22.09.2003, 16:41

also ich weiß nicht ob ich das jetzt richtig verstanden hab. Aber man benutzt ja eigentlich einfach die gleiche Methode wie bei mx auch:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
class Classes.MenueClass extends MovieClip {   
    public function getTxt(i:Number) {
        return "Irgend was";
    }
}

class Classes.MCClass extends Classes.MenueClass{   
    public function setFunction(i:Number) {
        onRollOver = function() {
            trace(_root.obj_menue.getTxt(i));
        }
    }
}


wenn du auf multiple Vererbung rauswillst wird dir folgendes vielleicht weiterhelfen:
http://www.tige.tv/simon/blog/archives/000007.html
ist in mx aber kann ja nach mx umgeschrieben werden (solange __resolve noch unterstützt wird).

mfg
Simon

MiM#3
Benutzerbild von MiM
Beiträge: 8
Registriert: Jul 2002

22.09.2003, 17:17

Merk grad ich habs verpeilt. Habs falsch gelesen. sorry

mfg
Simon

Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

22.09.2003, 17:19

Hi Simon,

danke für deine Antwort.

Ich hatte gehofft in AS2.0 würde es einen Syntax wie es z.B. bei PHP gibt.:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
class MenueClass {   
    function 
getTxt($i) {
        return 
"Irgend was";
    }
}

class 
MCClass extends MovieClip {   
    function 
setFunction($i) {
        echo 
MenueClass::getTxt($i);
    }
}
?>

Da ich nicht unbedingt die Klasse vererben möchte, sondern nur auf deren Methoden zugreifen möchte.

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Sebastian#5
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

22.09.2003, 17:27

Naja, hab mich auch ziemlich misverständlich ausgedrückt. - hab grad noch mal drüber gelesen ;)

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 22.09.03 um 17:27 Uhr
Sebastian#6
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

22.09.2003, 18:37

Argh, Denkfehler gehabt.

Die Methode könnte man als static deklarieren und dann mit Klasse.Methode(); von überall aus aufrufen. Dann hat die Methode aber natürlich nicht zugrief auf das zu vor initialisierte Object.

Naja, dann muß ich es wohl doch bei der Übergabe mit dem Object belassen, oder die Klasse Mehrfachvererben.

Für die die es interessiert:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
class MenueClass {   
    static function getTxt() {
        return "Irgend was";
    }
}

class MCClass extends MovieClip {   
    public function setFunction() {
        trace(MenueClass.getTxt());
    }
}



Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
MiM#7
Benutzerbild von MiM
Beiträge: 8
Registriert: Jul 2002

23.09.2003, 19:37

Wenn du aus MenueClass ein Singleton machst dann wäre die Sache mit dem Zugriff gelöst. Da du dann ja einfach mit MenueClass.instance auf die instance zugreifen könntest. Und dann auf die Methode mit MenueClass.instance.getTxt();
http://www.swfoo.com/archives/000011.html <----- Singleton für AS 2.0.

mfg
Simon

PS: Hoffe das hilft dir weiter.

------
http://www.tige.tv/simon/blog

Sebastian#8
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

23.09.2003, 22:44

Danke, Simon.

Das funktioniert so weit schon ganz gut, nur wenn ich versuche es aus der MCClass: MenueClass.instance.getTxt(); aufzurufen, bekomm ich eine Fehlermeldung:

**Error** C:\....\MenueClass.as: Line 5: ActionScript 2.0 class scripts may only define class or interface constructs.
    MenueClass.prototype.addLink = function(txt, goto) {

Komischer weise aus der anderen Datei.
Wenn ich MenueClass.instance.getTxt(); direkt aus dem Movie aus aufrufe, funktioniert es wie gewünscht.

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 23.09.03 um 22:45 Uhr
MiM#9
Benutzerbild von MiM
Beiträge: 8
Registriert: Jul 2002

24.09.2003, 19:56

ich habs mal ausprobiert und bei mir scheints zu funktionieren. Hier ist mein Versuchscode:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Singleton {
    private static var inst:Singleton;

    private function Singleton() {}
    public static function get instance():Singleton {
        if (inst == null) inst = new Singleton();
        return inst;
    }
    public function getValue():String{
      return "Singleton: getValue";
    }
}


class Menu{
   public function request():Void{
      trace("Menu: request");
      trace(Singleton.instance.getValue());
   }
}


// usage
var aMenu:Menu = new Menu();
aMenu.request();


mfg
Simon

---------
http://www.tige.tv/simon/blog/

Sebastian#10
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

24.09.2003, 21:53

Ohhh jeee... Sorry!

... hab meine Klassen in einem Unterordner "Classes" und hab vergessen den im Script anzugeben (bzw. dachte ich man brauchts nicht, da ja alle Klassen in einem Ordner sind). ;)))

So gehts:
ActionScript:
1Classes.MenueClass.instance.getTxt(i);


Vielen Dank für deine Hilfe.

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 24.09.03 um 21:54 Uhr
Madokan#11
Benutzerbild von Madokan
Beiträge: 130
Wohnort: Berlin/Germany
Registriert: Mar 2002

25.09.2003, 09:10

Oh ha hier geht es ja heiss her - hab ich erst jetzt mitbekommen. Sebastian - gestern hatte ich zwei Mails lediglich mit einem Bet. von dir im Kasten - ging es um diesen Thread hier? - War kein Body enthalten, muss wohl den Spam-Filter nochmals anpassen. ;)

Liebe Grüsse
Matze K.

[Flashstar]
http://www.flashstar.de
[Flashstar]
http://www.flashstar.de
Sebastian#12
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

Themenautor/in

25.09.2003, 14:49

Hi Matze,

ja, ging es. ...da haste aber nen gemeinen SpamFilter.

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Kosh#13
Benutzerbild von Kosh
Beiträge: 744
Wohnort: Berlin
Registriert: Mar 2003

15.03.2004, 12:57

thema polymorphie-> basti hab dir mal nen link zu meinen profs geschickt, dort wird u.a. das thema in java abgehandelt, brauchst dann nur noch analog zu denken...michse muss sich ersma mit dem grundverstaendnis von klassen in as2 beschaeftigen ;).

Gruss
Kosh
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Ich kann kein Kuchen backen wenn ich nicht weiss was Mehl ist.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Gruss
Kosh
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Ich kann keinen Kuchen backen wenn ich nicht weiss was Mehl ist.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
derDan#14
Benutzerbild von derDan
Beiträge: 44
Wohnort: miami
Registriert: Oct 2003

25.03.2004, 20:05

Kann hier mal kurz einer klaeren was genau ein Singleton ist?

derDan

umlart#15
Benutzerbild von umlart
Beiträge: 6212
Wohnort: Berlin
Registriert: Nov 2002

25.03.2004, 20:22

guckst du..
http://www.haiko-emmel.de/Single.htm



*Man muß nicht wissen wie es geht,
man muß nur wissen wo es steht.*
*Man muß nicht wissen wie es geht,
man muß nur wissen wo es steht.*


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de