Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-11-2010, 18:43   #1 (permalink)
Neuer User
 
Benutzerbild von Sanibal
 
Registriert seit: Oct 2005
Beiträge: 205
Eigene Object Collection

Hallo,
ich benötige Hilfe beim grundsätzlichen Aufbau einer eigenen Collection Klasse in AS3. Im Moment bin ich soweit das ich von Array eine Collection wie in C# abgeleitet habe, was mir dabei fehlt ist der direkte Zugriff auf ein Object innerhalb der Collection.

Zum Verständnis:
Code:
var buchCollection:Buecher = new BuchCollection();

var buch:Buch1 = new Buch("Hänsel und Gretel", "Grimm");
var buch:Buch2 = new Buch("Rotkäppchen", "Grimm");

buchCollection.Add(Buch1);
buchCollection.Add(Buch2);

trace("Titel: " + buchCollection[1].title)
Ich hoffe Ihr könnt mir einen Denkanstoß geben denn im Netz finde ich einfach keinen Anhaltspunkt da ich nicht so recht weiss wonach ich suchen soll.

Gruß,
Sanibal
Sanibal ist offline   Mit Zitat antworten
Alt 14-11-2010, 19:33   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
was genau versuchst du zu implementieren?
wieso nutzt du nicht Array oder Vector?
wo willst du hin?

quasi ein Array mit eigenen Methoden? ( flash.utils.Proxy )
oder einfach nur ein typisiertes Array? ( Vector )
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 14-11-2010, 19:48   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Da ActionScript keine Generics unterstützt, würde ich dir empfehlen einen Generator zu implementieren, der die Generierung abnimmt.

Wo hakt es genau?
Omega Psi ist offline   Mit Zitat antworten
Alt 14-11-2010, 19:55   #4 (permalink)
Neuer User
 
Benutzerbild von Sanibal
 
Registriert seit: Oct 2005
Beiträge: 205
Zitat:
Zitat von thomas_E Beitrag anzeigen
was genau versuchst du zu implementieren?
wieso nutzt du nicht Array oder Vector?
wo willst du hin?
Ich brauche eine Mischung aus beiden, eine Erweiterung von Vector sollte aber genügen. Sollte es nicht klappen melde ich mich nocheinmal.

Danke erstmal!
Sanibal ist offline   Mit Zitat antworten
Alt 14-11-2010, 20:31   #5 (permalink)
Neuer User
 
Benutzerbild von Sanibal
 
Registriert seit: Oct 2005
Beiträge: 205
Hmm, wie es ausschaut kann man Vector nicht Erweitern.

Ich möchte einfach nur ein typisiertes Array ala Vector welches um Funktionen wie z.B.
  • Die Summe aller Buchseiten
  • Events wie buchDeleted, buchAdded, buchChanged
erweitert ist.

Irgendwie stehe ich total auf dem Schlauch.
Sanibal ist offline   Mit Zitat antworten
Alt 14-11-2010, 20:37   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Du musst Vector nicht unbedingt erweiteren. Du kannst ja auch einfach eine Klasse erstellen, die einen private Vector enthält und über Methoden wie addItem, removeItem und getItem verwaltet.
__________________
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 (14-11-2010 um 20:40 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 14-11-2010, 20:42   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Ja, und um das ganze nicht immer wieder neu machen zu müssen, sollte man sich einen Code Generator schreiben.
Omega Psi ist offline   Mit Zitat antworten
Alt 14-11-2010, 20:54   #8 (permalink)
Neuer User
 
Benutzerbild von Sanibal
 
Registriert seit: Oct 2005
Beiträge: 205
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Du musst Vector nicht unbedingt erweiteren. Du kannst ja auch einfach eine Klasse erstellen, die einen private Vector enthält und über Methoden wie addItem, removeItem und getItem verwaltet.
Das war gerade mein Einsatz, nur stehe ich dann vor dem Problem das ich nich wie bei einem Array über buecher[index].eigenschaft zugreifen kann und Schleifen auch nicht mehr funktionieren.

Geändert von Sanibal (14-11-2010 um 20:57 Uhr)
Sanibal ist offline   Mit Zitat antworten
Alt 14-11-2010, 21:21   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Natürlich kann man über den Arrayzugriffsoperator [] auf die Elemente eines Vectors zugreifen.
Zitat:
Wie bei einem Array können Sie den Wert eines Vector-Elements mit dem Array-Zugriffsoperator ([]) festlegen oder abrufen.
Die einzige Einschränkung gegenüber einem Array ist das der Index innerhalb des definierten Bereichs liegen muss.

Ich würde dir deshalb empfehlen eine solche Methode zu integrieren:
PHP-Code:
public function getItemi:uint ):DeineElementKlasse {
    return  (
elementVector.length)? elementVector[i] : null;    

__________________
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 (14-11-2010 um 21:24 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 15-11-2010, 13:30   #10 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
im Anhang eine Beispielimplementierung mit der Proxy-Klasse
enthält:
Book
BookCollection
BookCollectionEvent
sowie ein Beispiel mit Schleifen und Events.

verbesserungsvorschläge sind erwünscht (lern ja selber noch)
Angehängte Dateien
Dateityp: zip package.zip (8,1 KB, 11x aufgerufen)
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 15-11-2010, 20:13   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
@Thomas: sieht ordentlich aus. Auch wenn ich es etwas anders machen würde.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
actionscript 3, collection

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
[Collection] Porblem feabee Flash CS5 Professional 0 12-11-2010 10:20
[Flash CS4] ausgabe von shared object ist immer [object Object] SaIG Flash Einsteiger 5 16-02-2010 18:05
Eigene Klasse in Local Shared Object speichern verursacht Fehler mildesign ActionScript 3 4 10-01-2008 15:59
garbage collection risingtob ActionScript 2 2 01-10-2007 20:48


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

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


Copyright ©1999 – 2012 Marc Thiele