| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 16
|
hallo Flasher, ich habe da ein Problem: Ich möchte den Inhalt eines Arrays mittels Dynamischer Textfelder darstellen. Dafür habe ich mir ein Objekt gebastelt was u.A die Informationen die ich darstellen soll als Arrays beinhaltet: Code: CharData = new Object(); CharData.Atribute = new Array(); CharData.Atribute[0] = new Array(); CharData.Atribute[0][1] = "STR"; CharData.Atribute[0][0] = 10; CharData.Atribute[0][2] = "Stärke"; CharData.Atribute[0][3] = "Die physische Stärke eines Charakters"; CharData.Atribute[1] = new Array(); CharData.Atribute[1][1] = "KON"; CharData.Atribute[1][0] = 10; CharData.Atribute[1][2] = "Konstituition"; CharData.Atribute[1][3] = "Das physische Durchhaltevermögen eines Charakters"; Abkürzung (CharData.Atribute[i][1]) und den Wert (CharData.Atribute[i][0]) dar. Mein Wunsch: Ich würde gerne die Beschreibung (CharData.Atribute[i][3]) dynamisch in einem "Beschreibungsfeld" für die jeweiligen Einträge darstellen wenn der Benutzer, eines der Felder focust (onSetFocus). Ich hatte mir folgenden Zeilen einfallen lassen, nun habe ich das Problem: Ich bekomme das "i", das ich in der if Schleife benutze nicht in die onSetFocus = function {Klammern} . Code: CharXMLTextfelder = function () {
this.createEmptyMovieClip("CTextMC", 1);
// 10 Atribute
for (i=0; i<10; i++) {
var TitelName = "Titel_"+i;
var WertName = "Wert_"+i;
this.CTextMC.createTextField(TitelName, 50+i, i*50, 0, 30, 20);
this.CTextMC.createTextField(WertName, 100+i, i*50, 35, 30, 20);
this.CTextMC["Titel_"+i].text = CharData.Atribute[i][1];
this.CTextMC["Wert_"+i].text = CharData.Atribute[i][0];
this.CTextMC["Titel_"+i].onSetFocus = function() {
this.CTextMC.createEmptyMovieClip("hilfe", 1);
this.CTextMC.hilfe.createTextField("hilfeTxT", 1, 100, 100, 200, 40);
this.CTextMC.hilfe.hilfeTxT.text = CharData.Atribute[i][3];
};
}
}; Code: this.CTextMC["Titel_"+i].onSetFocus = function() {
this.CTextMC.createEmptyMovieClip("hilfe", 1);
this.CTextMC.hilfe.createTextField("hilfeTxT", 1, 100, 100, 200, 40);
this.CTextMC.hilfe.hilfeTxT.text = CharData.Atribute[i][3];
trace(this._name);
trace(i);
}; //click auf Titel_1 : Code: Titel_1 10 Code: Titel_2 10 Frage: Wie bekomme ich es hin das in der onSetFocus = function das entsprechende "i" festgehalten wird, ohne das ich die Variablen über den Namen os. ermitteln muß. Hoffe wan versteht mich - ich jedenfalls das nicht |
| | |
| | #2 (permalink) | |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
| Zitat:
ActionScript:
btw willkommen im FF
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) Geändert von sonar (29-01-2005 um 17:59 Uhr) | |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Jan 2005
Beiträge: 16
| Zitat:
also nur nochmal zum besseren Verständniss : Code: this.CTextMC["Titel_"+i].onSetFocus = function() {
this.CTextMC.createEmptyMovieClip("hilfe", 1);
this.CTextMC.hilfe.id = i; // <-- hier ist das "i" aus der übergeordneten for-schleife noch gültig ?!? ich meine onFocus wird ja nicht in der for-schleife aufgerufen OoO
this.CTextMC.hilfe.createTextField("hilfeTxT", 1, 100, 100, 200, 40);
this.CTextMC.hilfe.hilfeTxT.text = CharData.Atribute[this.id][3]; //<-- und hier würde ich es dann brauchen, wobei es bei aufruf der onFocus-function immer 10 ist ;/
trace(this._name);
trace(this.id); // <-- und hier ist nur zur Kontrolle
}; Wenn ich das durchschaue verstehe ich u.U auch andere Probleme dieser Art die auf mich zukommen ... // edit: habe ich versucht - funzt nisch - u.U weil: "this.CTextMC.hilfe" ja erst bei onFocus dynamisch erstellt wird, also bei der definition von this.CTextMC.hilfe.id = i , this.CTextMC.hilfe noch garnicht existent ist. Ich denke ich verschachtele die beiden Textfelder this.CTextMC.createTextField(TitelName, 50+i, i*50, 0, 30, 20); this.CTextMC.createTextField(WertName, 100+i, i*50, 35, 30, 20); in einem weiteren MC so das ich die hilfeID dort speichern kann ... ich halte Euch auf dem Laufenden ... Geändert von some0ne (29-01-2005 um 23:00 Uhr) | |
| | |
| | #4 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Nee sorry, hatte den falschen Code-Block zitiert... das i muss natürlich in der for-Schleife, aber außerhalb der onSetFocus-Definition als id den Objekten "angeklebt" werden... (also dem CTextMC, wenn ich das diesmal richtig seh...)
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 16
|
das ging ja schnell ;D hm verstehe ich nicht denn wenn ich es außerhalb der onFocus-function mache dann ist es in CTextMC, als hätte ich da ein Array was alle IDs der 10 onFocus-funktionen verwaltet, nur frage ich mich wozu - habe ich doch alles schon in einem Array ;/ zur not fällt mir nurnoch ein an hand von this._name -> Titel_1 bis Titel_10 die ID zu slice(); en und darüber das fehlende "i" zu ersetzen - oder noch wer ne andere Idee ? Im grunde genommen wäre das so schön ... /cry |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 16
| gelöst ;D
// EDIT: OK also doch so wie du sagtest, nur das ich den Textfeldern Werte zuweisen kann, was ich nicht wußte - ergo keine Not für MC´s wie ich ogen dachte, habe es jetzt so : Code: for (i=0; i<10; i++) {
var TitelName = "TATR_"+i;
var WertName = "WATR_"+i;
this[TitelName].text = CharData.Atribute[i][1];
this[WertName].text = CharData.Atribute[i][0];
this[TitelName].meineID = i;
this[TitelName].onSetFocus = function() {
this._parent.infoTXT.text = CharData.Atribute[this.meineID][3];
};
this[TitelName].onKillFocus = function() {
this._parent.infoTXT.text = "";
};
}; jetzt kann ich viel schöne Sachen mit meinem so mühevoll gebasteltem Array machen - das was ich hier poste ist immer nur ein kl. Ausschnitt, ich lösche ne mänge wech auch wenn ich mir noch was für eine Lösung mit dynamisch erzeugten Texfeldern überlegen muß ;D aber so ist auch erstmal ok ...danke dir nochmal für den entscheidenden Anstoß sonar ! |
| | |
| | #7 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
War mir auch nicht so wirklich bewusst, dass man Textfeldern eigene Eigenschaften zuweisen kann... aber warum auch nicht. Gut, wenn's denn klappt!
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |