Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-09-2005, 10:43   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 65
Question Button per as für jedes einzelne Objekt

Hallo zusammne,

habe da mal ne Frage. Und zwar habe ich nun endlich mit Hilfe diese Forums und Google es geschafft per PHP,XML und Flash Ordner auszulesen und die namen der Dateien untereinander auszugeben. Nun möcht ich den nächsten Schritt machen und komme nicht weiter.

Ich möchte jetzt für jede Datei die ausgelesen wird einen Button erstellen mit dem Dateinamen und einem Link zu dieser Datei.

Krieg das nur irgendwie nicht gebacken leider

Hier der Code

Frame1:

Code:
stop();
var XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("readtest3.php");
XMLdaten.onLoad = function(success) {
        anzahl = XMLdaten.firstChild.childNodes.length; //liest die anzahl der elemente aus!
        anz = []; //neues array
        for (var i=0; i<anzahl; i++) {
                anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen		
		}
        gotoAndStop(2);
}
Frame2:

Code:
stop();//film stehen lassen (frame 2);
trace (i);
for (var i=0; i<anzahl; i++) {

     this.createTextField("teext1"+i, i, 0, i*10, 0, 0);
	  
      this["teext1"+i].autoSize = true;
	   var my_fmt:TextFormat = new TextFormat();
		my_fmt.color = 0x000000;
		my_fmt.underline = false;
		my_fmt.font = "Verdana";
		my_fmt.size = 10;
        //text aus array dem entsprechenden Textfeld zuweisen
        this["teext1"+i].text = anz[i];
		this["teext1"+i].setTextFormat(my_fmt);
		// CREA BUTTON //

this.createEmptyMovieClip("Button"+i,2000);
this._x = this["teext1"]+i._x;
this._y = this["teext1"]+i._y;
  with("Button"+i){
//this._yscale = 30;
	  beginFill(0xFF0000);
     moveTo(0,0);
     lineTo(50,0);
     lineTo(50,20);
     lineTo(0,20);
     lineTo(0,0);
     endFill();
}
this.onRelease = function(){
 getURL(anz[i]);
} 
}

Das mit dem Button in diesem Code wird bestimmt nicht richtig sein aber hier erstellt er mir zumindest einen Button aber der Link ist falsch und ich will halt nicht nur einen Button sondern im Grunde für jedes Textfeld was erzeugt wird einen.

Hoffe mich versteht jemand und kann mir helfen.

Vielen Dank und Gruß
AmeKi
AmeKi ist offline   Mit Zitat antworten
Alt 08-09-2005, 11:07   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
this.createEmptyMovieClip("Button"+i,2000);
Damit überschreibst du jetzt mehrfach deinen Button auf der Tiefe 2000. Wenn es dynamisch sein soll setz z.B. (2000+i).

Und welches Objekt soll mit this.onRelease einen Event auslösen? Du willst doch sicher, dass deine Buttons einen Event bekommen, oder? Also this["Button"+i].onRelease = function(){}

Dann müssen sich deine Buttons auch noch den Schleifenzähler merken, weil der nach Durchlauf der Schleife nicht mehr bekannt ist, also etwa:
ActionScript:
  1. this.createEmptyMovieClip("Button"+i,(2000+i));
  2. ...
  3. this["Button"+i].ID = i;
  4. this["Button"+i].onRelease = function(){
  5. trace("this.ID="+this.ID);
  6. }
  Mit Zitat antworten
Alt 09-09-2005, 09:26   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 65
Erstmal vielen Dank für die Antwort,

das der Button sich selbst überschreibt klingt logisch, deswegen zeigt der wohl auch immer nur einen an

Und mit der Funktion ist auch logisch habe da ja getURL(anz[i]); als Funktion
das geht auch noch net ganz aber das ist ne andere Geschichte.
Nur trotzdem wenn ich da anstelle des "this" das "this["Button"+i]" einfüge dann zeigt der mir zwar den Kasten an aber der Button ist weg?!?


Nun zu diesem Schleifenzähler. Also ich verstehe zwar was du meinst aber es funktioniert leider nicht. Er zeigt mir wie vorher auch nur einen Kasten an der den Button darstellen soll...

Das Ganze ist zu sehen unter http://www.green-eye.de/soundkonfi/
Die .fla dazu hier http://www.green-eye.de/soundkonfi/readtest1.fla

Danke schonmal für weitere Ideen

gruß
AmeKi
AmeKi ist offline   Mit Zitat antworten
Alt 09-09-2005, 09:53   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Er zeigt mir wie vorher auch nur einen Kasten an
Du musst deinen Buttons neben den unterschiedlichen Tiefen natürlich auch unterschiedliche Positionen zuweisen, bspw. über ein Positionsarray. Im Augenblick liegen die Buttons übereinander...
  Mit Zitat antworten
Alt 09-09-2005, 11:04   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 65
ok danke, ich habe jetzt einen anderen code gefunden und bissl angepasst und jetzt funktioniert es wie ich es wollte:

hier der code in Frame 2

ActionScript:
  1. stop();
  2. level = 0;
  3. for (var i=0; i<anzahl; i++) {
  4.  
  5. createButton(anz[i], anz[i], 0, i*20, level++);  
  6. }
  7.  
  8. function createButton(buttonName, buttonText, buttonX, buttonY, buttonLevel){
  9. abutt  = _root.createEmptyMovieClip(buttonName, buttonLevel);
  10. abutt._x = buttonX;
  11. abutt._y = buttonY;
  12. //abutt.getURL("www.ameki.com");
  13. abutt.onRelease = function(){
  14.  getURL("songs/"+buttonName);
  15. }
  16.  
  17. abutt.createTextField("ButtonText", 1, 0, 20, 120, 23);
  18. abutt.ButtonText.textColor = 0x9B1314;
  19. abutt.ButtonText.text = buttonText;
  20. abutt.ButtonFormat = new TextFormat();
  21. abutt.ButtonFormat.align = "center";
  22. abutt.ButtonFormat.size = 15;
  23. abutt.ButtonFormat.font = "Verdana";
  24. abutt.ButtonFormat.bold = "true";
  25. abutt.ButtonText.setTextFormat(buttonName.ButtonFormat);
  26.  
  27. }

VIELEN DANK FÜR DIE HILFE

Geändert von AmeKi (09-09-2005 um 11:06 Uhr)
AmeKi 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:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele