Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2004, 12:12   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 181
Arrayproblem (global?)

Hallo,

kleines Problem.

ich habe in einem MC 4 Buttons. Beim Click auf einen Button soll jedesmal ein Wert an ein Array hinzugefügt werden. Das Array wird in Der Hauptzeitleiste deklariert.

Ich habe jedoch das Gefühl, das mittels "Array.concat()" kein Wert an den Array angefügt wird.

Kann es sein das Arrays nicht global sind?

Hier der Code im 1. Frame der Hauptzeitleiste
PHP-Code:
lastClick = new Array();
newClick = new Array(); 
Der Code des 2. Frame der Hauptzeitleiste:
PHP-Code:
if ( lastClick.length <= 0) {
    
lastClickNum 0;
    
newClickNum 0;
    
lastClick lastClick.concat("home");
} else {
    
lastClickNum lastClick.length 2;
    
newClickNum lastClick.length 1;
}

var 
rotation;
    
switch ( 
lastClick[lastClickNum] ) {        
    case 
"home":
        switch ( 
lastClick[newClickNum] ) {
            case 
"referenz":
                
rotation 45;
            break;
            case 
"firma":
                
rotation 180;
            break;
            case 
"service":
                
rotation 225;
            break;
        }
    break;
    case 
"referenz":
        switch ( 
lastClick[newClickNum] ) {
            case 
"home":
                
rotation 225;
            break;
            case 
"firma":
                
rotation 45;
            break;
            case 
"service":
                
rotation 180;
            break;
        }
    break;
    case 
"firma":
        switch ( 
lastClick[newClickNum] ) {
            case 
"referenz":
                
rotation 225;
            break;
            case 
"home":
                
rotation 180;
            break;
            case 
"service":
                
rotation 45;
            break;
        }
    break;
    case 
"service":
        switch ( 
lastClick[newClickNum] ) {
            case 
"referenz":
                
rotation 180;
            break;
            case 
"firma":
                
rotation 225;
            break;
            case 
"home":
                
rotation 45;
            break;
        }
    break;
}

// Kontrollausgaben
trace(lastClick);
trace(lastClickNum);
trace(newClickNum);

stop(); 
Der Code des Buttons:
PHP-Code:
on(release) {
    
_root.lastClick _root.lastClick.concat("home");

Der Code des MC:
PHP-Code:
onClipEvent(enterFrame) {
    
this._rotation rotation;

Es ist ein sich drehendes Menue. Also wenn man auf einen Buttons Klick soll sich diese im Kreis nach unten drehen. Aber es passiert nichts.

Dankbar für jede Hilfe,
-Michael
__________________
Gruß Michael

Geändert von xoos (18-08-2004 um 12:14 Uhr)
xoos ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:29   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Das Prob hat nichts mit global oder lokal zu tun. Ein Array ist immer lokal, solange es nicht mit _global als global deklariert wird.

Ich würde allerdings nicht die Methode concat nehmen, sondern push. Mit concat werden eigentlich zwei Arrays aneinandergehängt/verknüpft; mit push hängst du eine oder mehrere Elemente an das Ende des Arrays an.
  Mit Zitat antworten
Alt 18-08-2004, 12:35   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 181
also muss ich zunächst das Array mit "_global.meinArray = new Array;" globalisieren und dann die Methode austauschen.

Ich werds versuchen.

Muss ich dan eigentlich das Array immer mir "_global" aufrufen oder reicht es wenn es so deklariert wurde?
__________________
Gruß Michael
xoos ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:39   #4 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
solange du kein zweites array lokal mit dem selben namen definierst reicht immer die referenzierung ohne _global.

aber eigentlich reicht doch ein array in _root, wozu global?
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:45   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 181
Zitat:
Zitat von maddin79
solange du kein zweites array lokal mit dem selben namen definierst reicht immer die referenzierung ohne _global.

aber eigentlich reicht doch ein array in _root, wozu global?

Weil ich in der Annahme bin, das ein in _root deklariertes Array, nicht im MC bzw. im Button änderbar oder auslesbar ist. Lieg ich da falsch?

Hier noch mal die komplette Datei vielleicht hilfts weiter.
Angehängte Dateien
Dateityp: rar Webseite.rar (10,3 KB, 0x aufgerufen)
__________________
Gruß Michael
xoos ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:52   #6 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
damit liegst du falsch.

du kannst alles von überall her auslesen und ändern. es ist nur eine frage der referenzierung.

eine auf root deklarierte variable kann von überall über _root.variable angesprochen werden.
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:55   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 181
Gut zu wissen, aber leider ist das nicht die Lösung meines Problems. Denn auch dann geht es nicht.
__________________
Gruß Michael
xoos ist offline   Mit Zitat antworten
Alt 18-08-2004, 13:03   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Deklarier das Array einfach global, dann kannst du es aus jedem MC oder jeder belieben Zeitleiste mit _global.meinArray aufrufen. Ansonsten musst du immer den richtigen Objektpfad setzen.
  Mit Zitat antworten
Alt 18-08-2004, 13:14   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 181
Zitat:
Zitat von agedoubleju
Deklarier das Array einfach global, dann kannst du es aus jedem MC oder jeder belieben Zeitleiste mit _global.meinArray aufrufen. Ansonsten musst du immer den richtigen Objektpfad setzen.
Alles gut und schön :-) Aber ich glaube nicht das dies mein Problem löst, über welches ich eigentlich diese Thread eröffnet hatte. Es ist derzeit wohl mehr eine Grundsatzdiskusion über die Globalisierung oder Lokalisierung von Arrays geworden. Eine hilfreiche Lösung sehe ich bisher leider jedoch nicht.

Ich würde mich sehr darüber freuen, könnte mir jemand einen hilfreiche Lösungsansatz aufzeigen, denn ich grübele schon seit Tagen daran. Davon mal abgesehen sollte ich mir mal ein besseres AS Buch kaufen.
__________________
Gruß Michael
xoos ist offline   Mit Zitat antworten
Alt 18-08-2004, 13:21   #10 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Nö, eine Grundsatzdiskussion ist das bestimmt nicht. Ob du globale Variablen oder lokale Variablen mit Objektpfad oder Pfadreferenzen verwendest, bleibt dir ja selbst überlassen.

Hast du denn jetzt dein eigentliches Prob mit dem Array.push getestet?
  Mit Zitat antworten
Antwort

Lesezeichen

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



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

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


Copyright ©1999 – 2012 Marc Thiele