{lang: 'de'}
Flashhilfe.de - Flash Community

Brauche bitte dringend Hilfe für dynamische Bezeichner [Flash 11]

 


AntwortenRegistrieren Seite1 2  

andrelehnert#17
Benutzerbild von andrelehnert
Beiträge: 37
Registriert: Dec 2010

27.03.2012, 10:45

In der Praxis würde ich das Ganze über ne xml-Datei lösen, die die Defaults hält.
In flash lädst Du die xml, parsed sie in z.B das default-Array und initialisierst dann
mit Hilfe dieser for-Schleife bzw for each deine Strecke.

Arbeitest Du mit Fotos von den Teilen oder zeichnest Du sie in Flash?

Ausserdem wäre es toll, wenn Du Dich an die oben erwähnten Coding-Conventions halten würdest.
Geändert von andrelehnert am 27.03.12 um 10:48 Uhr
Sharky25#18
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

27.03.2012, 12:05

Hallo André,
Ich kann leider erst wieder heute Abend testen. Denke aber Dein "instances Array" ist der Schlüssel. In diesem liegt nach meinem Verständnis Deines Codes die komplette Instanz mit allen Eigenschaften.

Den "defaul Array" in Deinem Beispiel kann ich von seiner Relevanz für meinen Anwendungsfall noch nicht einordnen - es gibt ja keinen Default. Der Anwender startet ja auf einer leeren Bühne.

Bei jedem Hinzufügen eines neuen Teils, wird dieses in den instances Array geschrieben, beim Löschen entsprechend entfernt und der Array neu sortiert plus die Teile auf der Bühne entsprechend verschoben.

Die einzelnen Teile würde ich als Movies in der Bibliothek anlegen und jedem seine eigene Klasse geben mit den generischen Eigenschaften (Teilebezeichnung, Teilegröße, Artikelnummer, usw.)?

Funktioniert die _parent Abfrage auch mit den generischen Instanzen?

Beispiel:
Im Schienenteil ist ein weiterer Movie, wenn ich den anklicke - gibt er mir die _parent instance zurück? Und kann ich ihn über diese ansprechen?

Anders formuliert:
In meinem Schienen Movie sind diverse "Untermovies" die ein- oder ausgeblendet oder eingefärbt werden sollen - wie kann ich die erreichen?
andrelehnert#19
Benutzerbild von andrelehnert
Beiträge: 37
Registriert: Dec 2010

28.03.2012, 10:15

Das default array stellt ersteinmal die Datenstruktur dar, mit der Du arbeiten könntest, wenn
du zum Beispiel ein abgespeichertes Setting wiederherstellen möchtest.

Warum diese Verschachtelungen "von Hause aus". Das erschwert die Pflege der Seite später
ungemein, da Du dann für jede Produktänderung wieder an Deine Fla ranmusst und in den Unterunterunterstrukturen feinste Ämderungen vornehmen musst. Da sind Pflege-Probleme vorprogrammiert.

Aber genauere Ideen kann ich erst äußern, wenn Du mir (endlich) verrätst, in Welcher Form die Assets vorliegen (jpg - Foto oder gezeichnete Vectorgrafik in Flash).

Die parent Abfage funktioniert auch in dynamisch erstellten Strukturen.
Jedoch stellt sich wie gesagt die Frage, ob es überhaupt sinnvoll ist so zu arbeiten, oder
die Zuordnung anders zu lösen.

die generischen eigenschaften solltest Du aber in jedem Fall extern oder zumindest in solch einem Default array speichern - sonst macht das ganzeKlassenmodell ja auch keinen Sinn mehr, wenn Du dann 300 verschiedene Klassen hast und nicht nur 300 verschiedene Klassen-Instanzen.

Aber verstehe, ohne die genaue Zielsetzung zu kennen (manchmal sprichst Du von Abspeichern und Laden, manchmal von einer nackten Bühne und Deinen konkreten Code, wird es immer schwieriger Dir zuhelfen, je detaillierter Deine Fragen werden.

LG ANdré
Sharky25#20
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

28.03.2012, 11:08

ist erledigt...
Geändert von Sharky25 am 28.03.12 um 18:35 Uhr
Sharky25#21
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

28.03.2012, 18:12

Hallo André,

so ich denke ich bin ein Stück weiter.

über folgenden Code werden nun Teile eingefügt...

Button:
ActionScript:
1btn_addGerade_1.addEventListener(MouseEvent.CLICK,AddGerade_1);


...jetzt kommt die erste Frage - der Button ruft über den EventHandler ja die folgende Funktion auf:

ActionScript:
1
2
3
function AddGerade_1(event:Event) {
     AddPart(Standardgerade)
}


die ihrerseits dann "AddPart" aufruft:

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
function AddPart(itemType:Class)
{
     // Art des Schienenteils
   var NeuesTeil = new itemType();
     
     // Neues Schienenteil im Movie "Bahn" einfügen
   Bahn.addChild(NeuesTeil);
     
     // Parameter an Instanz der Schiene übergeben
   NeuesTeil.schieneNumber = itemNumber;
     
     // Neues Teil positionieren
   if(itemNumber > 0){
     NeuesTeil.x = Teile_ID[itemNumber-1].x + ((Teile_ID[itemNumber-1].schieneLength + NeuesTeil.schieneLength)/2);
     else{
     NeuesTeil.x = 0;}
     NeuesTeil.y = 0;
     
     Teile_ID.push(NeuesTeil);
     
      NeuesTeil.addEventListener(MouseEvent.CLICK, ClickHandler);
     
     // Counter erhöhen
   itemNumber++
  }


Das ist ein eigentlich sinnfreier Zwischenschritt...

Frage 1:
Wie schaffe ich es dem Funktionsaufruf (AddGerade_1) die gewünschte Class direkt als Parameter mitzugeben?

###################

Die Insatanz des neu angelegten Teils bekommt ja auch einen EventHandler mitgegeben, der folgenden Code enthält:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
function ClickHandler(e:MouseEvent):void
{
      var NeuesTeil  = Standardgerade(e.target);
     numberSelectedPart = NeuesTeil.schieneNumber
     if(numberSelectedPart == (itemNumber - 1)){
        addMode = true
     }
     else{
        addMode = false
     }
}


Dieser Code ist noch spezifisch für die Klasse "Standardgerade"

Frage 2:
Wie kann ich hier einen generischen Eventhandler erzeugen, der die Klasse (im Beispiel "Standardgerade") von der auslösenden Instanz übergeben bekommt?

Vielen Dank für Deine Hilfe

AntwortenRegistrieren Seite1 2  

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   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de