Autor |
Nachricht |
sahnemuh
Threadersteller
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Fr 24.07.2009 11:03
Titel Flash/AS: Text aus XML wird nicht dargestellt |
|
|
Moinsen, ich schon wieder
Folgendes Problem habe ich: Ich lese aus einer XML Datei Text aus, der im Flashfilm auch super dargestellt wird, sofern ich das Textfeld im _root erstelle.
Versuche ich diesen Text aber innerhalb eines bestehenden MCs anzuzeigen, ist der Text schlichtweg verschwunden.
Da ich bei bestimmten Aktionen aber den gesamten Hintergrund + die Textfelder verschieben möchte, brauche ich aber einen "Sammelclip", in dem sich alle Textfelder befinden.
Hier mal die entsprechende Stelle:
So funktioniert es nicht:
Code: | // 1. Ebene erzeugen
function buildSection(obj) {
_root.bgclip.createTextField(obj.attributes.instance_name, _root.bgclip.getNextHighestDepth(),obj.attributes.posx, obj.attributes.posy, 1, 1);
tmpField = eval("_root.bgclip." + obj.attributes.instance_name);
tmpField.multiline = false;
tmpField.wordWrap = false;
tmpField.embedFonts = true;
tmpField.selectable = false;
tmpField.autoSize = "left";
tmpField.text = obj.attributes.label;
tmpField.setTextFormat(univers_big);
} |
So funktioniert es:
Code: | // 1. Ebene erzeugen
function buildSection(obj) {
_root.createTextField(obj.attributes.instance_name, _root.bgclip.getNextHighestDepth(),obj.attributes.posx, obj.attributes.posy, 1, 1);
tmpField = eval("_root." + obj.attributes.instance_name);
tmpField.multiline = false;
tmpField.wordWrap = false;
tmpField.embedFonts = true;
tmpField.selectable = false;
tmpField.autoSize = "left";
tmpField.text = obj.attributes.label;
tmpField.setTextFormat(univers_big);
} |
Hier gibt's das gesamte AS
Hier alles, inklusive .fla
Zuletzt bearbeitet von sahnemuh am Fr 24.07.2009 11:05, insgesamt 1-mal bearbeitet
|
|
|
|
|
sahnemuh
Threadersteller
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst So 26.07.2009 15:46
Titel
|
|
|
keiner?
|
|
|
|
|
Anzeige
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst So 26.07.2009 18:00
Titel
|
|
|
morgenfrüh gerne, heute nich mehr
|
|
|
|
|
sahnemuh
Threadersteller
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Mo 27.07.2009 12:53
Titel
|
|
|
damit würdest du mich sehr glücklich machen
|
|
|
|
|
MR.WUT4
Dabei seit: 10.01.2007
Ort: Düsseldorf
Alter: 36
Geschlecht:
|
Verfasst Di 28.07.2009 16:30
Titel
|
|
|
Das geht ohne weiteres mit dem von dir geposteten Script.
Code: | // 1. Ebene erzeugen
function buildSection(obj) {
_root.bgclip.createTextField(obj.attributes.instance_name, _root.bgclip.getNextHighestDepth(),obj.attributes.posx, obj.attributes.posy, 1, 1);
tmpField = eval("_root.bgclip." + obj.attributes.instance_name);
tmpField.multiline = false;
tmpField.wordWrap = false;
tmpField.embedFonts = true;
tmpField.selectable = false;
tmpField.autoSize = "left";
tmpField.text = obj.attributes.label;
tmpField.setTextFormat(univers_big);
} |
Du darfst allerdings nicht vergessen das du die X/Y Koordinaten ausgehend von der Position deiner Containers angeben musst.
in deiner XML:
statt:
Code: | <section label="Ebene 1.1" instance_name="ebene_1_1" posx="206" posy="121"> |
das hier:
Code: | <section label="Ebene 1.1" instance_name="ebene_1_1" posx="750" posy="840"> |
So solltest du das Textfeld dann auch sehen.
Schöner wäre es natrülich wenn dein "bgclip" auch auf 0/0 liegt und du seine Skalierung aufhebst. Dann könntest du dir das rechnen sparen.
Nen Gruß,
der O.
Zuletzt bearbeitet von MR.WUT4 am Di 28.07.2009 16:37, insgesamt 2-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 28.07.2009 18:39
Titel
|
|
|
Oder einfach nicht in den Clip einpflanzen sondern für alle deine Linkinstanzen eine eigene Ebene einziehen.
|
|
|
|
|
sahnemuh
Threadersteller
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Mi 29.07.2009 19:10
Titel
|
|
|
Ich hab' jetzt den bgclip wie vorgeschlagen auf 0/0 positioniert -> funktioniert super. Vielen Dank dafür!
Eine andere Frage hätte ich noch:
Um später Ebenen ein- und auszublenden und für ein bißchen anderen Krams, wollte ich, damit nicht ständig das XML-File parsen muß, ein "Behelfsarray" anlegen in dem die Nodes aus dem XML als Objekte gespeichert werden.
Innerhalb der Funktion die das XML parsed kann ich auf die Nodes/Objekte auch zugreifen (trace(_root.sectionsArray[j].label) liefert mir z.B. etwas zurück), nachher aber nicht mehr (trace(_root.sectionsArray[0].label)), obwohl ich die Variable vorher und im _root initialisiere.
Wo ist da der Denkfehler?
Code: |
// behelfsarray initialisieren
_root.sectionsArray = new Array();
// XML parsen
function loadXML(xmlObject) {
for(var i = 0; i < xmlObject.childNodes.length; ++i) {
//sections
for(var j = 0; j < xmlObject.childNodes[i].childNodes.length; j++) {
// texte erzeugen
buildSection(xmlObject.childNodes[i].childNodes[j]);
_root.sectionsArray[j] = xmlObject.childNodes[i].childNodes[j]
//subsections
for(var k = 0; k < xmlObject.childNodes[i].childNodes[j].childNodes.length; k++) {
// texte erzeugen
buildSubSection(xmlObject.childNodes[i].childNodes[j].childNodes[k]);
// behelfsarray befüllen
_root.sectionsArray[j][k] = xmlObject.childNodes[i].childNodes[j].childNodes[k];
// links
for(var l = 0; l < xmlObject.childNodes[i].childNodes[j].childNodes[k].childNodes.length; l++) {
// texte erzeugen
buildLink(xmlObject.childNodes[i].childNodes[j].childNodes[k],xmlObject.childNodes[i].childNodes[j].childNodes[k].childNodes[l]);
// behelfsarray befüllen
_root.sectionsArray[j][k][l] = xmlObject.childNodes[i].childNodes[j].childNodes[k].childNodes[l];
}
}
}
}
} |
Zuletzt bearbeitet von sahnemuh am Mi 29.07.2009 19:23, insgesamt 3-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mi 29.07.2009 20:34
Titel
|
|
|
Weil "xmlObject" eine nur ein Parameter deiner Funktion ist, und keine "wirkliche" Variable. Parameter sterben, genau wie Methoden-Variablen, wenn die Methode abgefrühstrückt ist. Wenn Du das XML.Objekt behalten willst, muss Du dir dafür eine richtige Varible anlegen.
Aber letzten Endes ist das Unfug. Der Gedanke mit dem "Behelfsarray" ist da schon viel besser.
|
|
|
|
|
|
|
|
Ähnliche Themen |
PowerPoint - Text unterschiedlich dargestellt
text in flashseite wird am mac fehlerhaft dargestellt
text variable wird nicht richtig dargestellt
Flash wird nicht dargestellt
LoadMovie wird im IE nicht dargestellt, Flash...
Schatten aus PNG wird auf Flash nicht dargestellt.
|
|