Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2004, 09:14   #1 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Question keine Zuweisung einer Farbvariablen nach XML Ladevorgang

Ich habe eine Variable aus einer XML eingeladen und im AS zusammengesetzt, so dass dies eigentlich eine Variable ansprechen sollte, doch das tut es nicht und das entsprechende Objekt wird nicht Rot (wie es vorgesehen war), sondern in jedem Fall schwarz.

Folgender AS liegt auf der Hauptzeitleiste:

PHP-Code:
stop();

ci_xml = new XML();
ci_xml.ignoreWhite true;
ci_xml.load("zuweisungen.xml");
ci_xml.onLoad = function(success) {
    
    for (var 
0i<users_xml.firstChild.childNodes.lengthi++) {
        
        var 
ci1 0xFE3636;
        var 
ci2 0xFA0000;
        var 
ci3 0xC80000;
        var 
ci4 0x960000;
        var 
ci5 0x640000;
        var 
thisNode:XMLNode users_xml.firstChild.childNodes[i];
        
//Den folgenden Teil kann ich mir auch nicht erklären - den hab ich nur kopiert - vielleicht kann mir mal jemand das erklären - insb. was für eine Auswirkung das "$" hat
        
MovieClip.prototype.setcolor = function($setcolor) {
            
this.$mc = new Color(thisNode.nodeName);
            
this.$mc.setRGB($setcolor);
        }
        
        
_root[thisNode.nodeName].setcolor("ci"+thisNode.attributes.value);
    }
}; 
In der XML liegt der Datensatz in dieser Form vor:
PHP-Code:
<text>
<
nummer1="3" />
<
nummer2="1" />
</
text
Das AS soll nun das dementsprechend (im ersten Fall) einlesen, dass er dem MC "nummer1" den Farbwert der Variablen "ci3" zuweist.
Doch das klappt nicht! Ich habe dann z.B. die "3" in dem XML durch "ci3" ersetzt, doch da passiert auch nichts weiter, als dass wie in den vorherigen Fällen das entsprechende MC schwarz wird.

Fazit: Es werden die MC's erkannt, doch die Farbvariable nicht zugewiesen. Kann mir irgendjemand helfen - dass kann doch nicht so schwierig sein?!
__________________
JuL!

Geändert von JuL! (20-07-2004 um 09:18 Uhr)
JuL! ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:47   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:
_root[thisNode.nodeName].setcolor(this["ci"+thisNode.attributes.value]); 
zumindest denke ich mir das mal,
da du dich ja auf das onload beziehst (also auf das xml-objekt),
und dem gehören ja die vars ci1 und co.

ungetestet,da kein flash hier.
wenn nicht, laß dir den kram mal tracen.

btw, der mc.prototype gehört da auch nicht hin.

ich hätte wohl eher so agiert:

PHP-Code:
stop();
MovieClip.prototype.setcolor = function(farbe
{
    
col = new Color(this);
    
col.setRGB(farbe);
};
var 
ci1 0xFE3636;
var 
ci2 0xFA0000;
var 
ci3 0xC80000;
var 
ci4 0x960000;
var 
ci5 0x640000;
            


ci_xml = new XML();
ci_xml.ignoreWhite true;
ci_xml.load("zuweisungen.xml");
ci_xml.onLoad = function(success) {
    for (var 
0i<users_xml.firstChild.childNodes.lengthi++) 
    {
        var 
thisNode:XMLNode users_xml.firstChild.childNodes[i];
        
_root[thisNode.nodeName].setcolor(_root["ci"+thisNode.attributes.value]);
    }
}; 
grz
warrantmaster ist offline   Mit Zitat antworten
Alt 20-07-2004, 15:03   #3 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Arrow

Danke, aber leider klappt es nicht - zur Erleichterung habe ich ein stark vereinfachtes FLA angehängt inkl. XML!

Danke für jede weitere Hilfe!!!
Angehängte Dateien
Dateityp: zip test.zip (7,0 KB, 2x aufgerufen)
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Alt 20-07-2004, 16:23   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 70
PHP-Code:
MovieClip.prototype.setcolor = function(farbe) {
    
col = new Color(this);
    
col.setRGB(farbe);
};
        var 
ci1 0xFE3636;
        var 
ci2 0xFA0000;
        var 
ci3 0xC80000;
        var 
ci4 0x960000;
        var 
ci5 0x640000;

ci_xml = new XML();
ci_xml.ignoreWhite true;
ci_xml.load("zuweisungen.xml");
ci_xml.onLoad = function(success:Boolean) {
    
    for (var 
0this.firstChild.childNodes.lengthi++) {
        
        var 
thisNode:XMLNode this.firstChild.childNodes[i];
                
_root[thisNode.nodeName].setcolor(_root["ci"+thisNode.attributes.value]);
    }
}; 
Verschiedene Sachen:

1. Den MovieClips auf der Bühne musst du den richtigen Instanznamen geben, es reicht nicht das das Symbol z.b. Dreieck heißt!

2. Innerhalb der onLoad-Function zeigt "this" immer auf das XML-Objekt. Daher musst/kannst du darüber auf die Knoten zugreifen und nicht wie du es gemacht hast über user_xml oder so...

Greetz,
Benjy
Benjy ist offline   Mit Zitat antworten
Alt 20-07-2004, 20:03   #5 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Danke!!!

Danke!!!
__________________
JuL!
JuL! 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 18:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele