Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-01-2004, 19:47   #1 (permalink)
************
 
Registriert seit: Jul 2001
Beiträge: 143
Wert einer zusammengesetzten Variablen

Folgendes Problem:
Ich habe in einem eine Reihe von vordefinierten Variablen für eine Art Quiz. In jedem Frame gibt es drei Antworten mit drei unterschiedlichen Wertigkeiten (abhängig vom gewählten Schwierigkeitgrad).
Im ersten Frame des Films definiere ich die Wertigkeiten und eine Funktion, die von den Buttons über den dynamisch erzeugten Antworten ausgelöst wird:

ActionScript:
  1. // antwortkategorien:
  2. a = 100;
  3. b = 25;
  4. c = 0;
  5. // Was passiert, wenn auf eine Antwort geklickt wird:
  6. function antwort(antwortnummer){
  7.     fragepunkte = "wert_"+fragenummer+"_"+antwortnummer;
  8. }

Der Wert "antwortnummer" wird beim Klicken der Buttons erzeugt und mitgegeben. "fragenummer" wird von der jeweiligen Frage erzeugt. Beides funktioniert.

Jetzt habe ich in meinem Variablen-Script, in dem sämtliche Antwortsätze und Punkte definiert sind, bspw. die Variable

ActionScript:
  1. wert_1_2 = a;

Das bedeutet, wenn ich die 2. Antwort in Frage 1 wähle, gibt es Punkte, wie in "a" vorgesehen. Also 100.

Mein Ziel ist es, wie in der Funktion oben, die Variable (bzw. deren Wert), die zuständig ist, aus der Fragenummer und der geklickten Antwort (antwortnummer) "zusammenzupuzzeln".
Wenn ich den Wert von "fragepunkte" anzeigen lasse, erhalte ich aber "wert_1_2", an Stelle des Wertes (100).

Wie schaffe ich es, dass Flash kapiert, dass ich keinen String erzeugen will, sondern eine Variable aus Einzelelementen bauen und deren Wert haben will? Mit Number() kommt nur "NaN".

Hat das jetzt einer kapiert oder habe ich was vergessen?

Jede Hilfe rettet mich vor der Verzweiflung :-)

Jørn.
zellteilung ist offline   Mit Zitat antworten
Alt 26-01-2004, 20:19   #2 (permalink)
Flash-Wüstling
 
Benutzerbild von pheidrias
 
Registriert seit: Dec 2001
Ort: Halle/Saale
Beiträge: 4.300
Du schreibst die Timeline und dahinter den Variablennamen als String in [] :
ActionScript:
  1. fragepunkte = this["wert_"+fragenummer+"_"+antwortnummer];

tanti saluti,
pheidrias
__________________
Ehrlich währt am LÄNGSTEN !
pheidrias ist offline   Mit Zitat antworten
Alt 27-01-2004, 09:00   #3 (permalink)
************
 
Registriert seit: Jul 2001
Beiträge: 143
Funktioniert. Und so simpel :-)

Thanx!
zellteilung ist offline   Mit Zitat antworten
Alt 27-01-2004, 10:39   #4 (permalink)
Neuer User
 
Benutzerbild von der_oki
 
Registriert seit: Aug 2003
Ort: Oberhausen NRW
Beiträge: 159
jo, ein ähnliches problem habe ich auch
aber bei mir ist es n bissl komplexer ..
bin gerade dabei den code von meinem spiel zu optimieren.

da ist mir aufgefallen, das ich an einerstelle 3 mal die selbe abfrage mache obwohl das nicht nötig ist. naja und jetzt versuche ich das zu optimieren..

also es geht um ein autorennspiel, da habe ich 3 computer autos
instansname car1 car2 car3

die haben die möglichkeit einen turbo einzusammeln,
ob ein auto einen turbo hat mache ich an der variable
_root.carturbo{jeweils die car id} fest
bis jetzt stand also ca sowas bei mir im AS

if(_root.carturbo1 == true) { car 1 hat den turbo }
if(_root.carturbo2 == true) { car 2 hat den turbo }
if(_root.carturbo3 == true) { car 3 hat den turbo }

da dieses eine script aber auf jedes auto includet wird,wird jede abfrage "logischer weise" 3 mal gemacht.

nun will ich ca sowas haben

carid = this._name.substring(3,4);
if (_root.carturbo[carid] == true ) { car carid hat den turbo }

allerdings kommt bei trace(_root.carturbo1) false/true raus "jeh nach dem...."
und bei trace(_root.carturbo[carid]); wird hat nix ausgegeben..
also muss der fehler ja irgendwo da versteckt sein, ich hoffe da kann mir jemand helfen
thx
__________________
du kriegs was du gibst, wenn du tust was du liebst
onkeloki
der_oki ist offline   Mit Zitat antworten
Alt 28-01-2004, 14:49   #5 (permalink)
Flash-Wüstling
 
Benutzerbild von pheidrias
 
Registriert seit: Dec 2001
Ort: Halle/Saale
Beiträge: 4.300
Kann nur an carID liegen.

Wie "includest" du das Skript denn ?
this müßte sich ja jedesmal ändern ?

tanti saluti,
pheidrias
__________________
Ehrlich währt am LÄNGSTEN !
pheidrias ist offline   Mit Zitat antworten
Alt 28-01-2004, 15:00   #6 (permalink)
Neuer User
 
Benutzerbild von der_oki
 
Registriert seit: Aug 2003
Ort: Oberhausen NRW
Beiträge: 159
#include "computercar.fas"


auf das MC ( auto schreiben)


jap this ist dan immer anders, das ist ja der trick und der vortei von this

habs mitlerweile geölsst
mit eval geht es
wenn es jemnadn interessiert

so sieht das dan in action ca aus
ActionScript:
  1. carid = this._name.substring(3,4);
  2.    carid = Number(carid);
  3.     if (eval("_root.carturbo" add carid) == true && eval("_root.round" add carid) <=2)
  4.         {
  5.         eval("_root.car" add carid).speed = turbospeed;
  6.    if( _root.turboison == false  )
  7.         {
  8.     eval("_root.car" add carid add ".turbo").gotoAndPlay(2);
  9.     _root.turboison = true;
  10.     }
  11.     if(_root.turbotimer  == framesofturbo)
  12.     { _root.turbotimer = 1;
  13.      eval("_root.carturbo" add carid) = false;
  14.      eval ("_root.car" add carid).speed = eval("_root.car" add carid).origspeed;
  15.      eval ("_root.car" add carid).turbo.gotoAndStop(1);
  16.     } else { _root.turbotimer++;
  17.     }
  18.        }
  19.       // turbo aus nach dritter runde.
  20.       if(eval("_root.round" add carid) == 3) { eval("_root.car" add carid).turbo.gotoAndStop(1); }

mit dem includen spare ich mir dan viel tipparbeit, und
in einem text editor zu coden macht auch um einiges mehr spass als in diesem "pseudo flash editor "

persönlcih nutze ich unter windows ultraedit32
mit AS highlight
__________________
du kriegs was du gibst, wenn du tust was du liebst
onkeloki
der_oki ist offline   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 13:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele