Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-05-2009, 09:29   #1 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 27
Mehere Button in einen MC laden

Guten Tag,

ich versuche mehere Buttons aus der Bibliothek in einen einzigen Movieclip zu laden, was aber nicht funktionieren will.

Code:
Zitat:
var menu_arr:Array = ["menu01", "menu02", "menu03", "menu04", "menu05"];
var menu_mc:MovieClip = this.createEmptyMovieClip("menu_mc", this.getNextHighestDepth());
for (var i:Number = 0; i<menu_arr.length; i++) {
this.menu_mc.attachMovie("rectbevelgrey", menu_arr[i], menu_mc.getNextHighestDepth());
this.menu_mc._y += 50;
this.menu_mc._x = 400;
menu_mc.menu_arr[i].onPress = function() {

}
};
Meiner Ansicht nach wird der gard erstellte Button immer wieder überschrieben, denn am Ende wird ein einziger Button an der Stelle y = 250 erstellt!

Die Button sollen jedoch alle gleichzeitg sichtbar sein und an verscheiden platziert sein. Ist das so überhaupt möglich oder muss ich für jeden Button den ich laden will einen !extra! MC erstellen?
Das wäre sehr umständlich und nicht besonders für die Performance

Ich hoffe jemand hatte schon die selbe Idee
Mic_K ist offline   Mit Zitat antworten
Alt 26-05-2009, 11:06   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich würde es etwa so machen:
PHP-Code:
//var menu_arr:Array = ["menu01", "menu02", "menu03", "menu04", "menu05"];
var menu_mc:MovieClip this.createEmptyMovieClip("menu_mc"this.getNextHighestDepth());
for (var 
i:Number 0i<4i++) {
   
this.menu_mc.attachMovie("rectbevelgrey""menu0"+imenu_mc.getNextHighestDepth());
   
this.menu_mc["menu0"+i].ID i;//Schleifenzähler merken
   
this.menu_mc["menu0"+i]._y 50*i;
   
this.menu_mc["menu0"+i]._x 400;
   
this.menu_mc["menu0"+i].onRelease = function() {
       
trace("klick auf "+this);
   }
}; 

Geändert von agedoubleju (26-05-2009 um 11:07 Uhr)
  Mit Zitat antworten
Alt 26-05-2009, 13:12   #3 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 27
hey vielen dank für deine Antwort.

Zitat:
var menu_mc:MovieClip = this.createEmptyMovieClip("menubutton_mc", this.getNextHighestDepth());
Was ist nicht ganz verstehe ist, ob ich nun die Methoden auf den Variablennamen anwenden muss:

Zitat:
menu_mc
oder auf den Instanznamen
Zitat:
menubutton_mc
meistens so habe ich es gelesen(Adobe Referenzhandbuch), sind diese sogar gleich?!

Bei Methoden wie getDepth(), oder auch removeMovieClip() gehts dann aber drunter und drüber. Da funktioniert das nicht wenn beide Namen gleich sind, es funktioniert nur der Instanzname, ansonsten kommt "undefined"!

Hast du da Klarheit?

Geändert von Mic_K (26-05-2009 um 13:35 Uhr)
Mic_K ist offline   Mit Zitat antworten
Alt 26-05-2009, 13:54   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
menu_mc ist hier auch ein Instanzname. Beides kannst du gleichberechtigt verwenden.
PHP-Code:
var menu_mc:MovieClip this.createEmptyMovieClip("menubutton_mc"this.getNextHighestDepth()); 

menu_mc._x 200;
//ist dasselbe wie
menubutton_mc._x 200
Die Zuweisung eines weiteren Bezeichners an eine Instanz macht aber meist nur Sinn, wenn bspw. dem Instanznamen ein ellenlanger Objektpfad vorangeht oder in for-Schleifen etc. Beispiel:
PHP-Code:
var mc:MovieClip this.meinHauptMC.meinEingebetteterMC.createEmptyMovieClip("menubutton_mc"this.getNextHighestDepth()); 

mc._x 100;//ist hier einfach kürzer... 
  Mit Zitat antworten
Alt 26-05-2009, 13:59   #5 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 27
ok, besten dank!

die beiden Methoden getDepth() und removeMovieClip() funktionieren bei mir aber nur mit dem Instanznamen (den namen den ich hinten in den Klammern zuweise). Das ist schon sehr seltsam :\
Mic_K ist offline   Mit Zitat antworten
Alt 26-05-2009, 14:08   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Auch removeMovieClip und getDepth funzen mit den Bezeichnern:
PHP-Code:
var menu_mc:MovieClip this.createEmptyMovieClip("menubutton_mc"this.getNextHighestDepth()); 

var 
tiefe menu_mc.getDepth();
//ist dasselbe wie
var tiefe menubutton_mc.getDepth();

menu_mc.removeMovieClip();
//ist dasselbe wie
menubutton_mc.removeMovieClip(); 
Das erstere ist eine Referenz auf den MC, das zweitere die Instanz selbst. Sollte das mal nicht funzen, überprüf die Instanznamen, bspw. mit traces oder dem Debugger.
  Mit Zitat antworten
Alt 26-05-2009, 14:12   #7 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 27
Es ist aber anscheinend nicht möglich auf verschiedene Buttons aus der Bibliothek zuzugriefen und diese in einen MC zu laden. Ist diese Aussage richtig?

habs mit dem Code versucht:

Zitat:
var button_arr:Array = ["flatbluepause","flatblueplay","flatbluestop"];
var konsole_mc:MovieClip = this.createEmptyMovieClip("konsolebutton_mc", 22);
for (var i:Number = 0; i<3; i++) {
this.konsole_mc.attachMovie(button_arr[i], "konsole0"+i, i);
trace(button_arr[i]);
this.konsole_mc["konsole0"+i].ID = i;
this.konsole_mc["konsole0"+i].onPress = function() {
trace("klick auf "+this);
}
}
Die Positionierungen habe ich hier weggelassen!
Aber es wird nicht auf die Bühne geladen.
Mic_K ist offline   Mit Zitat antworten
Alt 26-05-2009, 15:14   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Dann hast du wahrscheinlich die Verknüpfungsbezeichner vergessen oder anders benannt. Ich hab es gerade mal getestet, bei mir funzt es...
  Mit Zitat antworten
Alt 26-05-2009, 16:00   #9 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 27
hey danke für die Antwort.

Hab den Fehler woanders gefunden. Hatte das in einer Funktion stehen und der MovieClip war außerhalb nicht bekannt. Das klappt nur solange man nicht mit einer Schleife arbeitet

Läuft wunderbar und ist natürlich wesentlich kompakter!

Das Forum gefällt mir langsam...hier schreibt auch mal jemand zurück, der einem wirklich helfen kann

Danke
Mic_K ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
button, menu, movieclip

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 16:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele