Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-05-2004, 14:03   #1 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Pfadangabe aus Variablen konkatenieren

Hi,

ich hab mal wieder ne Frage zum konkatenieren…


Ich übergebe an eine Funktion Parameter mit den Namen sequence_a, sequence_b etc.

Diese Werte sollen dann so umgesetzt werden:

ActionScript:
  1. //etc.
  2.     _root.elements['navi_typo_0'+sequence_f+'._alpha']=navi_typo_alpha[1];
  3.     _root.elements['navi_typo_0'+sequence_g+'._alpha']=navi_typo_alpha[0];
  4.     _root.elements['navi_typo_0'+sequence_h+'._alpha']=navi_typo_alpha[0];
  5.     _root.elements['navi_typo_0'+sequence_i+'._alpha']=navi_typo_alpha[0];
  6.     _root.elements['navi_typo_0'+sequence_j+'._alpha']=navi_typo_alpha[0];
  7.     _global['typostatus_0'+sequence_k]='active';
  8.     _global['typostatus_0'+sequence_l]='inactive';
  9.     _global['typostatus_0'+sequence_m]='inactive';
  10.     _global['typostatus_0'+sequence_n]='inactive';
  11.     _global['typostatus_0'+sequence_o]='inactive';

Da nichts passiert, vermute ich mal, das ich irgendetwas falsch gemacht habe.

Die Werte für sequence_X sind immer integer.

Zb:

_global.typostatus_02='inactive';


Kann wer helfen?

Liebe Grüße

Yves
  Mit Zitat antworten
Alt 10-05-2004, 14:20   #2 (permalink)
der mit der Axt
 
Benutzerbild von ANTICHRIST
 
Registriert seit: Mar 2003
Ort: Mighty Mighty Ruhrpott
Beiträge: 449
Probier mal stat ' ein "
ANTICHRIST ist offline   Mit Zitat antworten
Alt 10-05-2004, 14:30   #3 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Wie ich mir schon dachte hatte das ersetzen von ' nach " nichts gebracht.

Eigentlich sind die doch richtig konkateniert oder?


Liebe Grüße

Yves
  Mit Zitat antworten
Alt 10-05-2004, 14:37   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
was ergibt denn ein tracen der geschichte ?
warrantmaster ist offline   Mit Zitat antworten
Alt 10-05-2004, 14:39   #5 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ich denke ehr, dass du da entweder ein pfadproblem hats, also das
sequenze_f
z.bsp. nicht definiert ist, oder ähnliches...

trace dir doch mal die ganzen werte, dann siehst du, wo der fehler liegt...

oder aber deine zuweisung ist nicht korrekt gesetzt...

also dein

navi_typo_alpha[1];

und schau mal unter filmvorschau, fehlersuche alle variablen auflisten nach, ob deine vars auch alle gestezt werden...

und ! natürlich macht es keinen unterschied, ob du " oder ' benutzt...zumindest hier nicht...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 10-05-2004, 14:55   #6 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Ich hatte das vorher alles prozedural gecodet, bevor ich mich dann entschlossen habe, das mit einer Funktion zu realisieren

Die Pfade sind also definitv korrekt, wenn ich die Funktionsparametervariablen direkt hineinschreibe, funktioniert es ja.

Tracen ist etwas schwierig… die Arrays werden in einem loadVarsObjekt definiert. Ich muss das ganze also im Browser öffnen und dann sehe ich kein Output Window mehr. Keine Ahnung ob das nur so auf Mac ist, aber ich denke das ist beabsichtig.

Ich lege mir mal ein Textfeld an und schiebe die Werte dort hinein.

Aber nochmal zum reinen Verständnis… bei der Konkatenierung ist soweit doch alles ok, oder?

Yves
  Mit Zitat antworten
Alt 10-05-2004, 15:08   #7 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hmm, ok.

Ein wenig schwierig das korrekt auszugeben, ohne das Flash das auch als Pfad benutzen will…

Ich hoffe das ist so noch das gleiche:

_root.testwindow.text='_root.elements'+['navi_typo_0'+sequence_f+'._alpha'];


Ergebnis ist der korrekte Pfad, nur das nach Elements und dem Text in den eckigen Klammern der . fehlt.

Aber das ist ja klar, warum.

Ich denke, das es tatsächlich an der Art der Konkatenation liegt…

Wenn ich das einfach direkt herausschreibe und trace kommt

undefined
inactive

heraus.

Inactive bedeutet, das es schon mal anscheinend korrekt zugewiesen wird.

Dann wäre ja der obere eigentlich der Übeltäter.
Nur denke ich, das Flash das Tracing als Variable ansieht und entsprechend den Array, der etwas weiter oben zugeordnet ist, versucht auszugeben.

Und der ist ja wie o.g. noch nicht definiert, wenn man nur diese swf aufruft und tracen möchte…

Arghs…–


Yves
  Mit Zitat antworten
Alt 10-05-2004, 15:15   #8 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Das hier war in der prozeduralen Version…

ActionScript:
  1. _root.elements.white_navi_01._alpha=_global.navi_status[4];
  2.     _root.elements.white_navi_02._alpha=_global.navi_status[3];
  3.     _root.elements.white_navi_03._alpha=_global.navi_status[2];
  4.     _root.elements.white_navi_04._alpha=_global.navi_status[1];
  5.     _root.elements.white_navi_05._alpha=_global.navi_status[0];
  6.     _global.cleanUp_navi_status_00=_global.navi_status[4];
  7.     _global.cleanUp_navi_status_01=_global.navi_status[3];
  8.     _global.cleanUp_navi_status_02=_global.navi_status[2];
  9.     _global.cleanUp_navi_status_03=_global.navi_status[1];
  10.     _global.cleanUp_navi_status_04=_global.navi_status[0];
  11.     _root.elements.navi_typo_01._alpha=navi_typo_alpha[0];
  12.     _root.elements.navi_typo_02._alpha=navi_typo_alpha[0];
  13.     _root.elements.navi_typo_03._alpha=navi_typo_alpha[0];
  14.     _root.elements.navi_typo_04._alpha=navi_typo_alpha[0];
  15.     _root.elements.navi_typo_05._alpha=navi_typo_alpha[1];
  16.     _global.typostatus_01='inactive';
  17.     _global.typostatus_02='inactive';
  18.     _global.typostatus_03='inactive';
  19.     _global.typostatus_04='inactive';
  20.     _global.typostatus_05='active';

Und das versuche ich halt, nun in eine Funktion zu bekommen…



Geändert von 409coffeemaker (10-05-2004 um 15:28 Uhr)
  Mit Zitat antworten
Alt 10-05-2004, 16:18   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ach...eben seh ich erst den übeltäter...
hatte ich agr nicht druaf geachtet gehabt...

du kannst mit dem arrayzugriffsoperator KEINE pfade auswerten, die einen punkt haben...

das geht nur und ausschließlich mit eval..

deines geht so :

ActionScript:
  1. _root.elements['navi_typo_0'+sequence_f]._alpha=navi_typo_alpha[1];

oder aber du wertest den string aus...


ActionScript:
  1. var eigenschaftVonMC =eval(_root.elements['navi_typo_0'+sequence_f+'._alpha']);
  2.  
  3. //sollte jetzt gehen
  4. trace(eigenschaftVonMC);


verstanden?...
du kannst keine dot-syntax mit dem arrayzugriffsoperator auswerten...
da musst du schon den punkt aussparen...

bsp:
ActionScript:
  1. var mc = _root['deinFilm']['deinUnterfilm']._alpha = 50;

das geht auch


hope this helps

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 10-05-2004, 16:29   #10 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hi,

alles klar! Besten Dank.

Ausgerechnet das kleinste Zeichen war Schuld

Hab ich gar nicht dran gedacht. Ich machs ohne eval(); und setze den Punkt hinten an.

Vielen Dank, funktioniert. Habs grad probiert.

Liebe Grüße

Yves
  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 00:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele