tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
388
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von timäää
    timäää timäää ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Ort
    Bad Oeynhausen (NRW)
    Beiträge
    131
    Hi...
    Mein Problem ist folgendes:
    Ich hab diese Klasse geschrieben:
    PHP-Code:
    class katInfo
    {
        static var 
    katArray = new Array();
        
        static function 
    get kat():Array
        {
            return 
    katArray;
        }
        function 
    set kat(newKat:Array):Void
        
    {
            
    katArray newKat;
        }

    aber wenn ich jetzt im Film
    PHP-Code:
    katInfo.kat[0] = new Array(0,0,7,47,86,52,100,27,175,42,135,8); 
    aufrufe, wird nichts in den Array geschrieben...Wisst ihr woran das liegt?
    Geändert von Datic (14.08.05 um 22:16 Uhr)
     
    so wahat you gonna loose? you know you come from nothing, you are going back to nothing... so what have you lost? nothing!

    -=Turbofant=-

  2. #2
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    der Setter "kat" ist prinzipiell eine Funktion und selbst kein Array. Zudem wird in dieser Funktion Deinem privaten Array "katArray" das übergebene Array zugewiesen.

    Was Du willst, ist einem bestimmten Index von "katArray" ein neues Array zuweisen. Dafür würde ich mir in etwa so eine Funktion schreiben:
    PHP-Code:
        public function setkatIndex(idx:NumbernewKat:Array):Void
        
    {
            
    katArray[idx] = newKat;
        }
        
    // und vielleicht nochwas zum einfachen Anfügen:
        
    public function pushkat(newKat:Array):Void
        
    {
            
    katArray.push(newKat);
        } 
    Gruß
    .
     

  3. #3
    Avatar von timäää
    timäää timäää ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Ort
    Bad Oeynhausen (NRW)
    Beiträge
    131
    So. Hab den Fehler gefunden. Hab einfach nur das "static" vor der set function fergessen (kein wunder das das nich ging ). Jetzt gehts genau so wie ich mir das gedacht habe...

    Und implizite get/set Methoden sehen von Außen (von einer anderen Klasse aus) prinzipiell wie eine Variable aus, also in diesem Fall wie ein Array..
     
    so wahat you gonna loose? you know you come from nothing, you are going back to nothing... so what have you lost? nothing!

    -=Turbofant=-

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Das geht?

    Dann nehm ich alles zurück und behaupte das Gegenteil!

    (ich gebe allerdings zu, es nicht "in situ" getestet zu haben)

    Gruß

    EDIT: So, ich habs nun mal ausprobiert: Mit statischen Eigenschaften und Methoden wird tatsächlich keine Fehlermeldung ausgegeben - allerdings wird der Setter nicht aufgerufen, wenn ich ihn als Arrayelement anspreche (eine trace-Aktion beweist es). Kannst Du bitte Deinen funktionieren Code oder die Dateien posten? Die Vorgehensweise interessiert mich wirklich, danke!
    .
     

  5. #5
    Avatar von timäää
    timäää timäää ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Ort
    Bad Oeynhausen (NRW)
    Beiträge
    131
    mh... Wie gesagt der Code is quasi der geleiche wie oben... Nur halt noch mit nem static vor dem Setter...

    der Klassen code:
    PHP-Code:
    class katInfo
    {
        static var 
    katArray = new Array();
        
        static function 
    get kat():Array
        {
            return 
    katArray;
        }
        static function 
    set kat(newKat:Array):Void
        
    {
            
    katArray newKat;
        }

    der Aufruf:
    PHP-Code:
    katInfo.kat[0] = new Array(0,0,7,47,86,52,100,27,175,42,135,8); 
    Funktioniert bei mir wunderbar... lässt sich auch alles über Trace abfragen...
     
    so wahat you gonna loose? you know you come from nothing, you are going back to nothing... so what have you lost? nothing!

    -=Turbofant=-

  6. #6
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Stimmt - ich hatte schlicht und einfach aus Faulheit den Getter vergessen.

    Wieder was dazugelernt.

    Gruß
    .
     

  7. #7
    Matthias_Nordwig Tutorials.de Gastzugang
    Mal ne Frage: Ab welcher Version von Flash ist es möglich dermaßen objektorientiert zu proggen?
    Ich wusste bisher garnet das es static usw. überhaupt gibt.

    e Sache des.

    MfG

    Matthias
     

  8. #8
    Matthias_Nordwig Tutorials.de Gastzugang
    Joa externe klassendateien ist ab Flash 6 möglich, die nutze ich auch. Aber das man hier javalike proggen kann find ich echt klasse.
     

  9. #9
    Avatar von timäää
    timäää timäää ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Ort
    Bad Oeynhausen (NRW)
    Beiträge
    131
    Zur Info mal den Text aus der Flash-Hilfe zu ActionScript 2.0:


    Übersicht zum Erstellen von Klassen mit ActionScript 2.0
    ActionScript 2.0 ist eine Erweiterung der Sprache ActionScript, die mehrere neue leistungsfähige Programmierfunktionen beinhaltet, die auch bei anderen Programmiersprachen wie z. B. Java üblich sind. ActionScript 2.0 unterstützt Programmstrukturen, die wiederverwendbar, skalierbar, stabil und verwaltbar sind. Außerdem werden mit ActionScript die Entwicklungszeiten verkürzt, da Benutzern Codierungshilfen und Debugging-Informationen zur Verfügung gestellt werden. ActionScript 2.0 entspricht den gängigen Standards und basiert auf den ECMAScript 4-Kriterien (www.mozilla.org/js/language/es4/). ActionScript 2.0 ist in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 erhältlich.

    Die Funktionen von ActionScript 2.0 werden im Folgenden beschrieben.

    Bekanntes OOP-Modell Das Hauptmerkmal von ActionScript 2.0 ist ein bekanntes Modell zum Erstellen objektorientierter Programme. Mit ActionScript 2.0 werden mehrere neue objektorientierte Konzepte und Schlüsselwörter eingeführt, wie z. B. Klasse, Schnittstelle und Pakete, die Ihnen sicherlich bekannt sind, wenn Sie bereits mit Java programmiert haben.

    Das OOP-Modell von ActionScript 2.0 ist eine "syntaktische Formalisierung" der Prototypketten-Methode, die in früheren Versionen von Macromedia Flash verwendet wurde, um Objekte zu erstellen und Vererbung zu etablieren.

    Strikte Datentypisierung Mit ActionScript 2.0 können Sie Datentypen für Variablen, Funktionsparameter und Funktionsrückgabetypen explizit festlegen. Der folgende Code legt beispielsweise die Variable mit dem Namen userName vom Typ "String" fest (integrierter ActionScript-Datentyp bzw. Klasse).

    var userName:String = "";

    Compiler Warn- und Fehlermeldungen Dank der beiden oben genannten Funktionen können vom Authoring-Tool und vom Compiler Warn- und Fehlermeldungen ausgegeben werden, mit denen Sie Fehler in Ihrer Anwendung schneller finden können.
     
    so wahat you gonna loose? you know you come from nothing, you are going back to nothing... so what have you lost? nothing!

    -=Turbofant=-

Ähnliche Themen

  1. Problem mit Mehrdimensionalem Array
    Von xtramen01 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 23.07.10, 15:31
  2. Antworten: 8
    Letzter Beitrag: 22.06.10, 17:20
  3. array_intersect mit mehrdimensionalem Array
    Von jaegerschnitzel im Forum PHP
    Antworten: 5
    Letzter Beitrag: 20.06.08, 09:39
  4. Antworten: 1
    Letzter Beitrag: 20.02.06, 11:44
  5. Antworten: 7
    Letzter Beitrag: 25.04.04, 19:07