Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-10-2010, 11:50   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 21
Array-Elemente

Hallo,

ich habe (mit etwas Hilfe von hier) einen Flash erstellt, in dem vier Buttons vier zugehörige MCs per swapDepths jeweils nach oben schieben.

In dem Script soll das Array aber einen weiteren Wert erhalten, der jedem der vier Buttons bzw. MCs noch eine Zahl hinzufügt, sodass die Zahl des oben stehenden MCs in ein Textfels ausgegeben wird.

hierzu einmal der bisherige Code:

PHP-Code:
var A:Array = [[btn1mc1], [btn2mc2], [btn3mc3], [btn4mc4]]; 
for (var 
i:Number 0i<A.lengthi++) { 
    
A[i][0].ID_S i
    
A[i][0].onRelease = function() { 
        
A[this.ID_S][1].swapDepths(this._parent.getNextHighestDepth()); 
        for (var 
j:Number 0j<A.lengthj++) { 
            
A[j][0] != this A[j][0].ID=A[j][0].ID=1
            
//textfeld.text = x;
        

    }; 


oben in dem Array sollte jetzt z.B. hinter[btn1, mc1] noch ein dritter Wert stehen. Weiss jemand wie das geht? Hatte es für ganz einfach gehalten, bekomme es aber nicht hin.

Anbei auch noch die fla-Datei zum Verständnis.


Danke und Grüsse
Angehängte Dateien
Dateityp: fla ebenen_button_test2.fla (64,0 KB, 2x aufgerufen)
asilasil ist offline   Mit Zitat antworten
Alt 25-10-2010, 12:04   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Ein dritter Wert im inneren Array?

Wenn du was zwischen die Arrays schummeln willst, tust du dir keinen Gefallen. Doch verstehe ich dein Anliegen nicht ganz.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-10-2010, 13:00   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Verschiedenartige Objekte über ein mehrdimensionales Array zu verwalten, wird schnell unübersichtlich. Es ist besser die Werte als Eigenschaften in einem Object oder einer Klasse abzulegen.

Wenn Du mit AS1 arbeitest, würde ich Dir sowas in der Art vorschlagen:
PHP-Code:
// Der aktuell aktive Button
var activeBtn;

// Die Funktion zum aktivieren eines Buttons
function activateBtnbtn ) {
    
    if (
btn != activeBtn) {
        
        if (
activeBtn) { // deaktiviert vorherigen Btn
            
activeBtn.active false;
            
activeBtn.mc._visible false;
        }
        
        
activeBtn btn;
        
        if (
activeBtn) { // activiert vorherigen Btn
            
activeBtn.active true;
            
activeBtn.mc._visible true;
        }
        
    }
    
}

// initialisiert die Buttons
function initBtns(){
    var 
btn;

    for(var 
i:Number 0btns.lengthi++) {
        
btn btns[i];
        
        
// Schreibt einen Haufen Eigenschaften in den Button
        
btn.master this;        
        
btn.active false;        
        
btn.id i;
        
btn.mc this["mc" i];
        
        
btn.onRelease = function() {
            
// sagt dem übergeordneten Objekt, dass es den Button aktivieren soll
            
this.master.activateBtnthis );
        }
    }
    
}

// und hier wird all das aufgerufen
var btns:Array = [btn0btn1btn2btn3];
initBtns(); 
__________________
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 gerade online   Mit Zitat antworten
Alt 25-10-2010, 13:19   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 21
Unhappy

Danke schonmal für die Mühen.

Ich dachte, es wäre ca. so am einfachsten:


PHP-Code:
var A:Array = [[btn1mc1zahlenwert1], [btn2mc2zahlenwert2], [btn3mc3zahlenwert3], [btn4mc4zahlenwert4]]; 
also z.B. ich drücke btn1, zugehöriger mc1 geht in die oberste ebene und dazugehöriger Zahlenwert (z.B. 10) wird in einem Textfeld angezeigt.

Ich würde am liebsten mit dem script von mir weiterarbeiten, da ich das jetzt soweit verstehe

grüsse nochmal
asil
asilasil ist offline   Mit Zitat antworten
Alt 25-10-2010, 13:47   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Grunsätzlich funktioniert das auch. Du musst den Zahelnwert nur über den richtigen Index ansprechen:
PHP-Code:
A[j][2
Ich gebe nur zu Bedenken, dass Du bei diesen ganzen anonymen [] irgendwann nicht mehr durchblicken wirst.

Neben der reinen Funktion sollte man beim Programmieren auch darauf achten, dass der Code lesbar und verständlich bleibt. Was das angeht ist die folgende Zeile ziemlich grenzwertig:
PHP-Code:
A[j][0] != this A[j][0].ID=A[j][0].ID=1
__________________
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 gerade online   Mit Zitat antworten
Alt 25-10-2010, 14:16   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Aus
ActionScript:
  1. A[j][0] != this ? A[j][0].ID=0 : A[j][0].ID=1;
Lässt sich eben auch einfach das hier herleiten:
ActionScript:
  1. var button = A[j][0];
  2. button.ID = button != this ? 0 : 1;
Etwas schlanker und lesbarer.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-10-2010, 15:03   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Oder gar
PHP-Code:
var button A[j][0];
button.ID Numberbutton == this ); 
Wenn das ein Aktivzustand sein soll, ist es sauberer diesen über eine eigene Eigenschaft (activeBtn) zu verwalten, statt jedesmal das gesamte Array zu durchlaufen.
__________________
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 (25-10-2010 um 15:07 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
array, elemente, variablen

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
Array elemente dragndrop, dann wieder array updaten? mathiregister ActionScript 3 7 12-01-2010 13:25
[Flash CS4] elemente in array ansprechen suicidegirl Flash Einsteiger 3 21-02-2009 19:26
Alle Array Elemente in denen "abc" vorkommt in neuem Array speichern dizzlwizzl Flash MX 2 25-01-2005 12:55
array-elemente zusammenfügen gaspode Flash MX 2 25-08-2004 20:32
array elemente xlive ActionScript 1 1 27-05-2004 16:45


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele