Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-10-2005, 10:54   #1 (permalink)
what's up dude?
 
Benutzerbild von the crunch
 
Registriert seit: Oct 2005
Beiträge: 55
Button Script dynamisch erzeugen

Hallo zusammen.

Ich bau grad an einer Landkarte rum, auf der bestimmte Locations angezeigt werden sollen. Die Position der Locations und so weiter lese ich aus einem XML ein. Soweit so gut, das läuft. Für jede Location erzeuge ich (attachMovie) in einer for-Schleife einen Button. Wenn ich nun über so einen Button fahre soll daneben ein Textfeld auftauchen, wo dann die Daten zu lesen sind. Mein Problem ist nicht das Textfeld, sondern dessen Inhalt und Position, was beides in Arrays abgespeichert ist. Aber wie bekomme ich nun Flash dazu, dynamisch zu jedem Button ein Script auszuführen?

ActionScript:
  1. function buttons_nordamerika(){
  2.  
  3.     for(var i=0; i<XMLdaten_loc_length[id_nordamerika]; i++){
  4.  
  5.         _root.attachMovie("test_button", "test_button"+i, i+100);
  6.         _root["test_button"+i]._x = XMLdaten_loc_posx[id_nordamerika][i];
  7.         _root["test_button"+i]._y = XMLdaten_loc_posy[id_nordamerika][i];
  8.        
  9.         _root["test_button"+i].onRollover = function(){
  10.  
  11.             tool._visible = true;
  12.             tool.onEnterFrame = function(){
  13.                 this._x = (XMLdaten_loc_posx[id_nordamerika][i] + 10);
  14.                 this._y = (XMLdaten_loc_posy[id_nordamerika][i] + 10);
  15.                 }
  16.         }
  17.        
  18.         _root["test_button"+i].onRollout = function(){
  19.             tool._visible = false;
  20.             tool.tt.text = "";
  21.             delete tool.onEnterFrame;
  22. }
  23. }
  24. }
the crunch ist offline   Mit Zitat antworten
Alt 31-10-2005, 11:59   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Versuche mal die Zuweisung der Buttons an das
attachMovie zu hängen. Die onRollOver etc. Events
werden wohl ignoriert, weil der Button noch nicht
auf der Bühne ist. Attached wird wird glaube ich erst,
wenn das Skript abgearbeitet ist, aber bin mir nicht 100% sicher.

ActionScript:
  1. attachMovie(...).onEnterFrame=function(){
  2. delete this.onEnterFrame;
  3. this.onRollOver=function(){....};
  4. };

edit:
Oder Du machst eine 2. for-Schleife, die onRollOver etc.
den Buttons zuweist.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (31-10-2005 um 12:03 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 31-10-2005, 12:37   #3 (permalink)
what's up dude?
 
Benutzerbild von the crunch
 
Registriert seit: Oct 2005
Beiträge: 55
Danke erst mal für deine Hilfe. Aber das Problem ist nicht das onRollOver etc. Das funktioniert ja alles soweit. Nur zum Beispiel, er erkennt nicht die x und y Position, wo das Textfeld erscheinen soll. Dieses erscheint immer an der selben Stelle.
the crunch ist offline   Mit Zitat antworten
Alt 31-10-2005, 12:45   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Lass dir doch erst einmal über trace-Befehle im Testmodus ausgeben, ob die Daten richtig eingelesen und initialisiert werden. Und konvertier deine XML-Daten für die Positionierungen sicherheitshalber in Number-Typen.

Darüberhinaus hat thebiz das eigentliche Problem schon richtig aufgezeigt: es gibt häufig Zeitprobleme beim Laden und Attachen von MCs, die oft nur durch einen erzwungenen Framewechsel mit einem onEnterFrame-Event gelöst werden können.
  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:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele