Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-08-2007, 12:06   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Button in einer Schleife soll bestimmte Variable behalten

Hallo,

ich habe eine etwas größere Schleife, in der nach und nach ein XML ausgelesen wird und die Inhalte in Textfelder geschrieben werden. Es klappt auch alles wunderbar soweit.

Jetzt habe ich das Problem, dass über den Texten auch Buttons erzeugt werden. Bei jedem Button der erzeugt wird muss bei onRelease die Variable an mein _root-Verzeichnis übergeben werden, die zum Zeitpunkt als der Button in der Schleife erzeugt wird aktuell ist.

Gar nicht so einfach zu erklären ich poste jetzt erstmal mein AS, denke dann wirds klarer :-) Habe ein Kommentar an der Stelle geschrieben wo das Problem auftritt.

PHP-Code:
function createMenu2(genre) {
    var 
i:Number 0;
    
trace(i);
    var 
yPos:Number 0;
    for (var 
aNode:XMLNode aNo.firstChildaNode != nullaNode aNode.nextSibling) {
        
i++;
        for (
attr in aNode.attributes) {
            if (
genre == aNode.attributes[attr]) {
                
// Textfeld #2
                
this.createTextField("txt_" ithis.getNextHighestDepth(), 6yPos63030);
                var 
tf1:TextField = eval("txt_" i);
                
tf1.text aNode.attributes[attr];
                
tf1.autoSize true;
                
tf1.embedFonts true;
                
tf1.selectable false;
                
tf1.setTextFormat(_root.fmt25);
                
// Trennungsline
                
this.lineStyle(20x999999100);
                
this.moveTo(0tf1._height);
                
this.lineTo(634tf1._height);
                
// Textfeld #2
                
yPos yPos tf1._height 2;
                var 
pNode:Array = aNode.childNodes;
                for (var 
j:Number 0pNode.lengthj++) {
                    
i++;
                    
this.createTextField("txt_" ithis.getNextHighestDepth(), 6yPos63060);
                    var 
tf2:TextField = eval("txt_" i);
                    
tf2.text pNode[j].attributes.name;
                    
tf2.autoSize true;
                    
tf2.embedFonts true;
                    
tf2.selectable false;
                    
tf2.setTextFormat(_root.fmt20);
                    
// Trennungsline
                    
this.lineStyle(20x999999100);
                    
this.moveTo(0tf2._height yPos);
                    
this.lineTo(634tf2._height yPos);
                    
yPos yPos tf2._height 2;

                    var 
tNode:Array = pNode[j].childNodes;
                    for (var 
l:Number 0tNode.lengthl++) {
                        
i++;
                        
// Textfeld #3
                        
this.createTextField("txt_" ithis.getNextHighestDepth(), 6yPos31641);
                        var 
tf3:TextField = eval("txt_" i);
                        
tf3.text tNode[l].attributes.name;
                        
//tf3.autoSize = true;
                        
tf3.multiline true;
                        
tf3.wordWrap true;
                        
tf3.embedFonts true;
                        
tf3.selectable false;
                        
//tf3.background = true;
                        //tf3.backgroundColor = 0xFF0000;
                        
tf3.setTextFormat(_root.fmt15);
                        
i++;
                        
// Textfeld #4
                        
this.createTextField("txt_" ithis.getNextHighestDepth(), 326yPos29641);
                        var 
tf4:TextField = eval("txt_" i);
                        
tf4.text tNode[l].attributes.who;
                        
//tf4.autoSize = true;
                        
tf4.multiline true;
                        
tf4.wordWrap true;
                        
tf4.embedFonts true;
                        
tf4.selectable false;
                        
//tf4.background = true;
                        //tf4.backgroundColor = 0xFF0000;
                        
tf4.setTextFormat(_root.fmt15);
                        
// Schaltfläche
                        //trace(tNode[l].attributes.src);
                        
var naviMain aNode.attributes[attr];
                        var 
naviSource tNode[l].attributes.src;
                        var 
btn:MovieClip this.createEmptyMovieClip("btn" ithis.getNextHighestDepth());
                        
btn.onRelease = function() {
                            
trace(naviMain);
                            
trace(naviSource);//hier ist mein Problem: ich bräuchte den Wert von tNode[l].attributes.src; er schreibt mir aber immer den letzten Wert der gesamten Schleife rein
                            //_root.gotoAndStop(naviMain);
                        
}
                        
btn._alpha 0;
                        
btn.beginFill(0xFF0000);
                        
btn.moveTo(6,yPos);
                        
btn.lineTo(620,yPos);
                        
btn.lineTo(620,yPos tf4._height);
                        
btn.lineTo(6,yPos tf4._height);
                        
btn.lineTo(6,yPos);
                        
btn.endFill();
                        
// Trennungsline
                        
this.lineStyle(20x999999100);
                        
this.moveTo(0tf4._height yPos);
                        
this.lineTo(634tf4._height yPos);
                        
yPos yPos tf4._height 2;
                    }
                }
            }
        }
    }
}
createMenu2("Video"); 
Meine Frage ist also, wie kriege ich es hin, das in der onRelease-Funktion jeweils ein ein eigener Wert steht.

Falls ich mein Problem nicht genau genug geschildert habe bitte nachfragen. Ansonsten bin ich über jede Hilfe dankbar.

Viele Grüße
Manni
mannimedia ist offline   Mit Zitat antworten
Alt 14-08-2007, 12:16   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
PHP-Code:
 var btn:MovieClip this.createEmptyMovieClip("btn" ithis.getNextHighestDepth()); 

btn.naviMain aNode.attributes[attr]; 
                        
btn.naviSource tNode[l].attributes.src
                                               
btn.onRelease = function() { 
                            
trace(this.naviMain); 
                            
trace(this.naviSource);//hier ist mein Problem: ich bräuchte den Wert von tNode[l].attributes.src; er schreibt mir aber immer den letzten Wert der gesamten Schleife rein 
                            //_root.gotoAndStop(this.naviMain); 
                        

__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 14-08-2007, 12:50   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Hallo,

super. Vielen Dank!! Klappt einwandfrei.

Jetzt wo ich es seh ist es klar. Oh man

LG
Manni
mannimedia 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 00:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele