Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-09-2010, 11:12   #16 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Okay, also definitv auf Vectoren umsteigen?
Aber das eigentliche Problem ist ja damit immer noch nicht gelöst.
Was meinst du mit langen Zeilen?
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 11:29   #17 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Jaro_E Beitrag anzeigen
Was meinst du mit langen Zeilen?
Sowas hier:
PHP-Code:
articleMasked = new ContentMaskedRollInOut(this.parentToBeChildOfthisthisthis.articles[this.counterIndex], this.moreLessButtons[this.counterIndex], isRolledInthis.articles[this.counterIndex].markerMoreLessautomaticActivation); 
Diese ewig lange Parameterübergabe zeigt auch ganz gut das Hauptproblem Deines Codes: Wenn Du alle zusammengehörigen Daten (also alles,was Du über this.counterIndex ansprichst) aus einem zentralen Objekt referenzierst, könnte das so aus sehen:
PHP-Code:
new ContentMaskedRollInOut(thisarticles[counterIndex]); 
Alles weitere könntest Du so aus der Blog- bzw. Article-Instanz auslesen.

Was Du hier an Paramteren zuviel hast, hast Du bei den Funktionen in Blog zu wenig. Diese würde ich so auf bauen:
PHP-Code:
private function prepareArticleMaskedarticleXML:XML ):Article { }
private function 
installArticleMaskedarticle:Article ):void { }
//usw.. 
und dann über eine for each-Schleife aufrufen. Die aktuelle Lösung mit dem Loop aus sich gegenseitig aufrufenden Funktionen ist extrem unübersichtlich und fehleranfällig.
__________________
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 (17-09-2010 um 11:32 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-09-2010, 11:58   #18 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Okay, das ursprüngliche Type Error Problem lässt sich eurer Meinung nach auf zu unstrukturierten Code zurückführen? Oder reden wir immoment nur über schlechten Programierstil? Denn das eigentliche Problem sehe ich immer noch nicht gelöst, das hier in sehr einfacher Form deutlich wird:

PHP-Code:
//MORELESSBUTTON
                
var mLButton:moreLessButton = new moreLessButton();
                
                
trace("mlB height: "  mLButton.height);
                
                
trace("Index " counterIndex);
                
                
this.moreLessButtons[this.counterIndex] = moreLessButton;
            
                
trace("mlB height: " this.moreLessButtons[this.counterIndex].width); 
Bis zu dem Punkt, bei dem der Inhalt an das Array übergeben wird, kann ich es aulesen, ab dann leider nicht mehr.

Ich würde gerne einfach wissen, ob grundsätzlich mit den Arrays eben was schief läuft. Wie sich das noch zusätzlich mit schlechtem Stil usw. nach oben multipliziert ist natürlich wieder ein anderes Problem.
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:16   #19 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Du musst dein Problem etwas besser erläutern. Theoretisch sollte es kein Problem sein, aber ich habe das Problem vielleicht auch nicht richtig verstanden. Was passiert genau? Was sagt der Debugger?
Omega Psi ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:20   #20 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Ok - zurück zum Problem. Wie ich oben geschrieben funktioniert das Auslesen von Objekteigenschaften aus einem Array bei mir anstandslos, weshalb ich denke, dass bei Dir irgendwas anderes falsch läuft.

Lass bitte diese this mal weg und gib am Ende die folgenden trace()s ein:
PHP-Code:
trace(moreLessButtons.constructor+" => "+moreLessButtons);
trace(counterIndex.constructor+" => "+counterIndex);
trace(moreLessButtons[counterIndex].constructor+" => "+moreLessButtons[counterIndex]);
trace(moreLessButtons[counterIndex].width.constructor+" => "+moreLessButtons[counterIndex].width); 
Und dann schreib uns, was Du an Ausgaben oder Fehlermeldungen bekommst!
__________________
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 (17-09-2010 um 12:22 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:36   #21 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Okay, mache ich sofort, nur noch eine Frage: was hat es mit der *.construcor - Eigenschaft auf sich?
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:39   #22 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Das ist der Verweis von jeder Instanz auf ihre Klasse. Mehr dazu wie immer in der Referenz.
__________________
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 offline   Mit Zitat antworten
Alt 17-09-2010, 12:45   #23 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Das ist die Ausgabe:

mlB begin
[class Array] => [class moreLessButton]
0 => 0
[class Class] => [class moreLessButton]
TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
at SmrzMusicblog::Blog/prepareArticleMasked()[/Users/Jaro/Documents/JRO FlashCreation/SmrzMusicblogTest/src/SmrzMusicblog/Blog.as:117]

Also das letzt funktioniert nicht.

Das hieße ja, dass man wirklich nur den Arrayinhalt auslesen kann, nicht aber Eigenschaften des Arrayinhaltes.

Geändert von Jaro_E (17-09-2010 um 12:46 Uhr)
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:46   #24 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Muss man nicht, laut deinem Link, über die prototype Referenz auf die Eigenschaft zugreifen?
Omega Psi ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:48   #25 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Anscheind nicht. Ich würde mal den Debugger nutzen.
Omega Psi ist offline   Mit Zitat antworten
Alt 17-09-2010, 12:54   #26 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Dann trace mal das:
PHP-Code:
trace(moreLessButtons[counterIndex].hasOwnProperty("width"));
trace(moreLessButtons[counterIndexis DisplayObject); 
Moment - da fällt mir was auf:
Zitat:
[class Class] => [class moreLessButton]
Du schreibst ja die Klasse in den Array, nicht die Instanz.
PHP-Code:
var mLButton:moreLessButton = new moreLessButton();

this.moreLessButtons[this.counterIndex] = moreLessButton// << das ist die Klasse nicht die Instanz

// Richtig wäre:
this.moreLessButtons[this.counterIndex] = mLButton
Sja - sowas kommt davon, wenn man nicht durchgägig die KlassenNamen groß schreibt.
__________________
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 (17-09-2010 um 13:00 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-09-2010, 13:27   #27 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Okay, das war der Fehler bzgl. dem Button, ich habe den eigentlichen Fehler jetzt aber gefunden.

Und zwar: nachdem der Article-Konstruktor aufgerufen wird. (in der prepareArticleMasked()-Methode), wird die Methode abgebrochen, d.h. die Zuweisung der article-Variable ans Array wird gar nicht ausgeführt.

Nun könnte ich die Article Instanz ja direkt im Array instanziere, aber damit gab es meiner Erinnerung auch schon mal Probleme.

Wie bringe ich Flash dazu, den Code nach dem Article-Konstruktor auszuführen? Bisher wird er ausgeführt, nachdem alle Anweisungen dort fertig sind. Ist es grundsätzlich so, dass Flash immer nur einen Strang gleichzeitig ausführen kann?
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 13:31   #28 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Jaro_E Beitrag anzeigen
Ist es grundsätzlich so, dass Flash immer nur einen Strang gleichzeitig ausführen kann?
Ja klar! Wäre auch schlimm wenn nicht.

Natürlich wird, wenn Du eine Klasse instanziierst, erst der gesamte Konstruktor ausgeführt, bevor der weitere Code abgehandelt wird. Nur so ist es überhaupt möglich sicher mit Klassen zu arbeiten.

Zitat:
Zitat von Jaro_E Beitrag anzeigen
Und zwar: nachdem der Article-Konstruktor aufgerufen wird. (in der prepareArticleMasked()-Methode), wird die Methode abgebrochen, d.h. die Zuweisung der article-Variable ans Array wird gar nicht ausgeführt.
Abgebrochen wird die andere Methode aber nicht; Es werden nur alle Befehle aus dem Konstruktor dazwischen geschoben.
__________________
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 (17-09-2010 um 13:36 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 20-09-2010, 21:43   #29 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Darauf aufbauend habe ich nun das Problem, dass nach der Ausführung meiner rekursiven Methoden - d.h. wenn die Ausgangsbedingung falsch wird - nicht wieder in die übergeordnete Klasse gewechselt wird, sondern die Ausführung des Codes komplett abgebrochen wird.
Jaro_E ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
array

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
Instanzen eigener Klasse in Array speichern geht nicht punkrockbabe ActionScript 3 8 13-04-2009 23:21
Movieclip in Variable speichern? geht das? tomtitom Flash Einsteiger 1 03-10-2007 16:30
Navigation mit Submenüs via Actionsskript, Instanzen und Arrays... Duke79 Flash Einsteiger 0 23-08-2007 14:32
XML daten in arrays speichern CHRIZZZLIE Flash mit XML und Webservices 34 24-04-2006 17:49
Arrays mit sharedObject speichern Arne_Schmidt ActionScript 1 9 23-02-2004 19:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele