| |||||||
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: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
ich will aus einem string wieder einen verwendbaren pfad machen... auf der bühne ein mc "eins" und in diesem ein weiterer mc "zwei". pfad = "eins.zwei"; trace([pfad]._x); will einfach nicht funktionieren. ich bekomm undefined. wohingegen dieses doch wunderbar geht: attribut = "_x"; trace(eins.zwei[attribut]); wie bekomm ich das hin, dass ich einen als string vorliegenden pfad auch wieder als pfadangabe verwenden kann ? |
| | |
| | #2 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
naja.... ein absoluter pfad... geht nur als verweis...... z.b. x = _root.eins.zwei; x.attribut // das geht dann machst du nun aber x = "_root.eins.zwei"; x.attribut... geht nun nicht da er x als string sieht mit y = eval(x); nun geht auch y.attribut.... du siehst das sehr schön wenn du die var ausgibst im ausgabe fenster.... Variable _level0.y = [Movieclip:_level0.eins.zwei]
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
tatsächlich! mit eval klappt's. ich dachte immer in mx kann man eval einfach mit den eckigen klammern ersetzen ??!? aber folgendes - was ich eigentlich damit machen will - funktioniert auch mit eval nicht ;-( quelle = "_level0.meinXml.firstChild.childNodes[0].childNodes[1].childNodes[0].childNodes"; trace(eval(quelle)); da bekomm ich wieder "undefined". der pfad in das xmlobject stimmt aber. wenn ich nicht mit dem string arbeite, dann bekomme ich mein element getraced..... (ich muss das als string übergeben weil ich will, dass der mc in dem sich das ganze abspielt, weiss wo sein textfeldinhalt herkommt. der soll da nämlich wieder reinschreiben können...) ich kriegs nicht hin :-( |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
hmmm jetzt geht's. ich übergebs als "nichtstring" in einem array. aber das die eckigen klammern ein eval () nicht immer und überall ersetzen können..... strange. man denkt man weiss wie's geht und man weiss nix ;-) |
| | |
| | #5 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
quelle = _level0.meinXml.firstChild.childNodes[0].childNodes[1].childNodes[0].childNodes; und es geht... warum als string in ""? eval kann viel mehr als nur []
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) |
| | |
| | #6 (permalink) | |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
| Zitat:
das textfeld soll "quelle" anzeigen. tut es auch. jetzt will ich in diesem textfeld editieren und den geänderten wert an die entsprechende stelle des xml objects schreiben (überschreiben). dafür brauch ich den pfad zum knoten und nicht den wert des knotens. aber wie gesagt, _level0.meinXml.firstChild.childNodes[0].childNodes[1].childNodes[0].childNodes in ein array geschrieben und so an den mc übergeben funktioniert. ich kann dann aus dem mc mit meinArray[0].nodeValue den wert des knotens überschreiben. ich krieg aber trotzdem voll die krise. ich will mit for schleifen (quasi "automatisiert") nach und nach mein ganzes xml durchgrasen. dabei komme ich natürlich immer wieder auf sowas hier in der art : eval("meinXml.firstChild.childNodes["+w+"].nodeType"); und genau das funktioniert leider nicht. wie sag ich ihm denn dass er meinXml.firstChild.childNodes[0 bis w].nodeType durchlaufen soll ? ;-( | |
| | |
| | #7 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
ich versteh dich nicht? warum bitte speicherst du immer die pfade in vars? so was macht man ja mit for schleifen wenn du einen xml string zerlegen möchtest..... ActionScript:
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
naja, mein ansatz sieht so aus : Code: level1Child = meinXml.firstChild;
level2Child = level1Child.firstChild;
level3Child = level2Child.firstChild;
level4Child = level3Child.firstChild;
level5Child = level4Child.firstChild;
for (a=1; a<6; a++) {
trace ("level"+a+"child ("+eval("level"+a+"child.nodeName")+") anzahl childnodes = " + eval("level"+a+"child.childNodes.length"));
for (w=0; w<eval("level"+a+"child.childNodes.length"); w++) {
trace(eval("level"+a+"child.childNodes["+w+"].nodeType"));
}
} wie mach ich denn sowas ohne die zusammengesetzten strings ? *grad voll auf dem schlauch steh* |
| | |
| | #9 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
meno ![]() zusammensetzen ist ja ok.... aber dann bitte als verweis nicht als string..... und wenn du mehrere verschachtelte knoten hast in deinem xml file... dann arbeite.... mit einer rekursiven function.... such mal nach dem thema xml strings zerlegen und rekursiv... da gibts einiges im forum
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
bin etwas verwirrt ;-) ich werd mich mal auf die suche nach rekursiv und xml strings zerlegen machen... aber was meinst du mit "zusammensetzen ist ja ok.... aber dann bitte als verweis nicht als string.." wie sieht denn ein zusammengesetzter "verweis" im gegensatz zu dem string aus ? |
| | |
| | #11 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
verweis = _root.xmlObject.firstChild.childNodes[0]; string = "_root.xmlObject.firstChild.childNodes[0]"; ein string ist ein fixer wert der wird sich nie ändern oder sonnst was..... der verweis ist eben nur ein zeiger auf denn eigentlichen wert z.b. x = 10; y = x; trace(y) // 10; x = 15; trace(y) // 15; das ganze nun als string x = 10; y = "x"; trace(y) // x; x = 15; trace(y) // x; ich denke nun ist dir der unterschied k
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Frankfurt
Beiträge: 195
|
na gut, na gut, ich hab gesucht und auch in etwa gefunden was ich wollte. hier ein paar codezeilen von alois: Code: xml_nodes=function(child,tiefe){
if (child.hasChildNodes()){
trace (tiefe +" "+ child.nodeName+"="+ child.firstChild.nodeValue);
tiefe++;
for(var i=0;i<child.childNodes.length;i++){
xml_nodes(child.childNodes[i],tiefe);
}
}
}
my_xml=new XML();
my_xml.ignoreWhite=true;//ohne ignoreWhite wedenm auch Steuerzeichen als xml-Tags erkannt
my_xml.onLoad=function(succsess){
if(succsess){
xml_nodes(this,0);
}
}
my_xml.load("deine.xml"); das problem welches ich immer noch habe ist, dass ich zu jedem trace was ich mit dem script bekomme noch den "absoluten pfad an die entsprechende stelle des xml" haben muss. weil ich später von anderer stelle aus (je ein attachmovieclip wo die inhalte auf ein textfeld gehen) den inhalt des entsprechenden knotens überschreiben will. und hier war mein ansatz halt so ein zusammengesetzter string. bin aber für jeden tipp wie, ich es ansonsten hinbekomme, das einer von zig movieclips mit einem textfeldinhalt weiss, wo dieser inhalt denn mal hergekommen ist. ich hoffe man kann verstehen was ich meine? scrawer ? |
| | |
| | #13 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
ein verweis! wie in meinem beispiel beschrieben..... aktuell willst du immer den pfad so speichern quelle = "_level0.meinXml.firstChild.childNodes[0]"; und diesen dann umwandeln..... wenn du den wert von .....childNodes[0] haben möchtest nur wie oben schon in meinem x,y beispiel zu sehen ist.... du musst nich so kompliziert denken...... quelle = _level0.meinXml.firstChild.childNodes[0]; speichert nun in der var quelle einen zeiger auf das xml object..... und du kannst mit hilfe von quelle jeder zeit von wo aus auch immer auf das _level0.meinXml.firstChild.childNodes[0] zugreifen... auch wenn sich dieser wert ändert da ja mit jeder abfrage von quelle erst der wert aus dem xml Object geholt wird... wie ja mein bsp.. mit x,y 10/15 schön zeigt.......
__________________ Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen m.f.g Scrawer (www.thinkspace.at) Geändert von Scrawer (09-09-2003 um 08:57 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |