dubmonster
Grünschnabel
Hallo zusammen. Ich habe ein Problem, an dem ich derzeit etwas verzweifle...
Ich möchte eine Art Quiz erstellen, bei wechem die Fragen 1-20 auf der Timeline verteilt sind. Nun muss entsprechend bei jeder Frage ein 50/50 Joker mit eingebaut werden. Das Problem besteht darin, dass ich versuche von Frame zu Frame die Vars zu überschreiben. Es werden jedes mal neue Objekte erstellt, die eigentlich die alten vorigen überschreiben sollen. Nun ist das Problem, dass die Werte der Objekte teilweise überspielen..
Hier mal der Code. Er wiederholt sich dann von Frame zu Frame, somit dann nur der Code aus einer Frame.
/******************************************************************************/
var quest_txt:String = "Frage";
var right_txt:String = "Möglichkeit1";
var wrong1_txt:String = "Möglichkeit2";
var wrong2_txt:String = "Möglichkeit3";
var wrong3_txt:String = "Möglichkeit4";
this.createTextField("frage_txt",1,31, 229,740,110);
frage_txt.multiline = true;
frage_txt.wordWrap = true;
frage_txt.textColor = 0xFFFFFF;
frage_txt.text = quest_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0xFFFFFF;
txt_fmt.underline = false;
txt_fmt.size = 24;
txt_fmt.align = center;
txt_fmt.bold = true;
frage_txt.setTextFormat(txt_fmt);
//Antwortboxen****oben_links********************************************
_root.createTextField("antwort_fld", getNextHighestDepth(), 31, 402, 234, 50);
antwort_fld.multiline = true;
antwort_fld.wordWrap = true;
antwort_fld.textColor = 0x000000;
antwort_fld.color = 0x9999CC;
antwort_fld.text = wrong1_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld.setTextFormat(txt_fmt);
//Antwortbox2****oben_rechts********************************************
_root.createTextField("antwort_fld2", getNextHighestDepth(), 501, 402, 234, 50);
antwort_fld2.multiline = true;
antwort_fld2.wordWrap = true;
antwort_fld2.textColor = 0x000000;
antwort_fld2.color = 0x9999CC;
antwort_fld2.text = wrong2_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld2.setTextFormat(txt_fmt);
//Antwortbox3****unten_links*******************************************
_root.createTextField("antwort_fld", getNextHighestDepth(), 31, 502, 234, 50);
antwort_fld3.multiline = true;
antwort_fld3.wordWrap = true;
antwort_fld3.textColor = 0x000000;
antwort_fld3.color = 0x9999CC;
antwort_fld3.text = right_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld3.setTextFormat(txt_fmt);
//Antwortbox4****unten_rechts*******************************************
_root.createTextField("antwort_fld4", getNextHighestDepth(), 501, 502, 234, 50);
antwort_fld4.multiline = true;
antwort_fld4.wordWrap = true;
antwort_fld4.textColor = 0x000000;
antwort_fld4.color = 0x9999CC;
antwort_fld4.text = wrong3_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld4.setTextFormat(txt_fmt);
//Tastatureingaben_abfangen_und_verarbeiten*****************************
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.RIGHT :
trace("rechts gedrueckt");
antwort_fld2.textColor = 0xD6D6D6;
antwort_fld4.textColor = 0xD6D6D6;
break;
case Key.LEFT:
trace("links gedrueckt");
antwort_fld3.textColor = 0x006600;
break;
case Key.UP:
trace("hoch gedrueckt");
break;
case Key.DOWN:
trace("down gedrueckt");
break;
}
};
Key.addListener(keyListener_obj);
function delete_vars(){
delete(antwort_fld.textColor);
delete(antwort_fld2.textColor);
delete(antwort_fld3.textColor);
delete(antwort_fld4.textColor);
delete(antwort_fld);
delete(antwort_fld2);
delete(antwort_fld3);
delete(antwort_fld4);
}
delete_vars();
/**Code Ende*******************************************************/
Ich weiss das es an manchen Stellen diletantisch gelöst ist, aber es geht hier nur um eine Präse, die im Hintergrund gesteuert werden soll. Nun ist es so, dass wenn die rechte Pfeiltaste gedrückt wird, sollen 2 Antoworten wegfallen, beim Drücken der linken Pfeiltaste soll die Antwort grün erscheinen. Nun verschwinden aber bei -> drücken alle Antworten, und bei <- drücken werden 3 Möglichkeiten grün. Ich denke das rühmt daher, dass die Werte der vorigen Frames mit überspielen. Kann es am Event-Handler liegen, oder ist es nicht möglich die Werte/ Objekte direkt zu überschreiben
Das löschen der Vars, bzw der Attribute funktioniert so auch nicht,.. Bin leider Gottes mmega im Zeitdruck, weil das morgen früh fertig sein soll...
Ich hoffe ich hab mich halbwegs verständlcih ausgedrückt, bzw konnte mein Problem gut erläutern.
Verzeiht den lapidaren Code, aber ich sitz erst seit 3 Tagen an Flash.
Ich hoffe mir kann jmd helfen.
Mfg
dubmonster
Ich möchte eine Art Quiz erstellen, bei wechem die Fragen 1-20 auf der Timeline verteilt sind. Nun muss entsprechend bei jeder Frage ein 50/50 Joker mit eingebaut werden. Das Problem besteht darin, dass ich versuche von Frame zu Frame die Vars zu überschreiben. Es werden jedes mal neue Objekte erstellt, die eigentlich die alten vorigen überschreiben sollen. Nun ist das Problem, dass die Werte der Objekte teilweise überspielen..
Hier mal der Code. Er wiederholt sich dann von Frame zu Frame, somit dann nur der Code aus einer Frame.
/******************************************************************************/
var quest_txt:String = "Frage";
var right_txt:String = "Möglichkeit1";
var wrong1_txt:String = "Möglichkeit2";
var wrong2_txt:String = "Möglichkeit3";
var wrong3_txt:String = "Möglichkeit4";
this.createTextField("frage_txt",1,31, 229,740,110);
frage_txt.multiline = true;
frage_txt.wordWrap = true;
frage_txt.textColor = 0xFFFFFF;
frage_txt.text = quest_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0xFFFFFF;
txt_fmt.underline = false;
txt_fmt.size = 24;
txt_fmt.align = center;
txt_fmt.bold = true;
frage_txt.setTextFormat(txt_fmt);
//Antwortboxen****oben_links********************************************
_root.createTextField("antwort_fld", getNextHighestDepth(), 31, 402, 234, 50);
antwort_fld.multiline = true;
antwort_fld.wordWrap = true;
antwort_fld.textColor = 0x000000;
antwort_fld.color = 0x9999CC;
antwort_fld.text = wrong1_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld.setTextFormat(txt_fmt);
//Antwortbox2****oben_rechts********************************************
_root.createTextField("antwort_fld2", getNextHighestDepth(), 501, 402, 234, 50);
antwort_fld2.multiline = true;
antwort_fld2.wordWrap = true;
antwort_fld2.textColor = 0x000000;
antwort_fld2.color = 0x9999CC;
antwort_fld2.text = wrong2_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld2.setTextFormat(txt_fmt);
//Antwortbox3****unten_links*******************************************
_root.createTextField("antwort_fld", getNextHighestDepth(), 31, 502, 234, 50);
antwort_fld3.multiline = true;
antwort_fld3.wordWrap = true;
antwort_fld3.textColor = 0x000000;
antwort_fld3.color = 0x9999CC;
antwort_fld3.text = right_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld3.setTextFormat(txt_fmt);
//Antwortbox4****unten_rechts*******************************************
_root.createTextField("antwort_fld4", getNextHighestDepth(), 501, 502, 234, 50);
antwort_fld4.multiline = true;
antwort_fld4.wordWrap = true;
antwort_fld4.textColor = 0x000000;
antwort_fld4.color = 0x9999CC;
antwort_fld4.text = wrong3_txt;
var txt_fmt:TextFormat = new TextFormat();
txt_fmt.color = 0x000000;
txt_fmt.underline = false;
txt_fmt.size = 20;
txt_fmt.align = CENTER;
txt_fmt.bold = true;
antwort_fld4.setTextFormat(txt_fmt);
//Tastatureingaben_abfangen_und_verarbeiten*****************************
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.RIGHT :
trace("rechts gedrueckt");
antwort_fld2.textColor = 0xD6D6D6;
antwort_fld4.textColor = 0xD6D6D6;
break;
case Key.LEFT:
trace("links gedrueckt");
antwort_fld3.textColor = 0x006600;
break;
case Key.UP:
trace("hoch gedrueckt");
break;
case Key.DOWN:
trace("down gedrueckt");
break;
}
};
Key.addListener(keyListener_obj);
function delete_vars(){
delete(antwort_fld.textColor);
delete(antwort_fld2.textColor);
delete(antwort_fld3.textColor);
delete(antwort_fld4.textColor);
delete(antwort_fld);
delete(antwort_fld2);
delete(antwort_fld3);
delete(antwort_fld4);
}
delete_vars();
/**Code Ende*******************************************************/
Ich weiss das es an manchen Stellen diletantisch gelöst ist, aber es geht hier nur um eine Präse, die im Hintergrund gesteuert werden soll. Nun ist es so, dass wenn die rechte Pfeiltaste gedrückt wird, sollen 2 Antoworten wegfallen, beim Drücken der linken Pfeiltaste soll die Antwort grün erscheinen. Nun verschwinden aber bei -> drücken alle Antworten, und bei <- drücken werden 3 Möglichkeiten grün. Ich denke das rühmt daher, dass die Werte der vorigen Frames mit überspielen. Kann es am Event-Handler liegen, oder ist es nicht möglich die Werte/ Objekte direkt zu überschreiben

Ich hoffe ich hab mich halbwegs verständlcih ausgedrückt, bzw konnte mein Problem gut erläutern.
Verzeiht den lapidaren Code, aber ich sitz erst seit 3 Tagen an Flash.
Ich hoffe mir kann jmd helfen.
Mfg
dubmonster