| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Nicht sehr eloquent! Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 181
| Object an onPress übergeben
Ich habe eine Klasse Calc. Diese erzeugt ne Menge mx.Controls.Buttons. Um diese auf die Bühne zu bringen deklariere ich z.B. eine Klassenvariable private var but1:mx.Controls.Button; und im Konstruktor dann mc.attachMovie("Button","but"+count,count); wobei mc ein vorher übergeben MovieClip Instanz ist. Hierbei muß ja die ButtonKomponente in der Bibliothek liegen. Hierzu meine erste Frage: Gibt es da nicht noch einen anderen Weg? Z.B. mit createClassObject. Habe das aber nicht so ganz verstanden. Hier macht das vorherige deklarieren auch nicht wirklich Sinn. Hier aber meine eigentliche Frage. Die Buttons werden in einer for-Schleife aus einem Array heraus erzeugt. In dieser Klasse wird ein Object op von einer anderen Klasse erzeugt. Ich möchte jetzt in der for-Schleife den Buttons ein onPress-Ereignis zuweisen welches eine Methode des op Objektes aufruft. Aber mir ist nicht klar wie. Hier mal die for-Schleife: PHP-Code: Muß ich eine eigene Klasse schreiben die von Button erbt und diese um ein Attribut erweitert welches dann das Object speichert. Oder geht es auch einfacher. Vielen Dank im voraus, Elo
__________________ In the life of a Flash developer, only one thing is guaranteed: Change. |
| | |
| | #2 (permalink) |
| \x3a\x6f\x29 Registriert seit: Apr 2004 Ort: paris
Beiträge: 806
|
ja, du musst nur eine referenz der klasse übergeben. var ref: Object = this Code: function init() {
var ref: Object = this;
for (var i:Number=0;i<all.length;i++) {
newX=x;
for (var a:Number=0;a<all[i].length;a++) {
if (all[i][a]!=" ") {
mc.attachMovie("Button","but"+count,count);
mc["but"+count].setLabel(all[i][a]);
mc["but"+count].useHandCursor=true;
mc["but"+count]._x=newX;
mc["but"+count]._y=y;
mc["but"+count].setSize(sizeX,sizeY);
newX=newX+xSpace+sizeX;
mc["but"+count].onPress=function() {
//Hier würde ich eben gerne an das Objekt op ran. Aber wie?
ref.op.calculate(this.getLabel());
}
count++;
}
else newX=newX+emptySpace;
}
y=y+ySpace+sizeY;
}
} Code: mc.attachMovie("Button","but"+count,count);
mc["but"+count].setLabel(all[i][a]);
mc["but"+count].useHandCursor=true;
mc["but"+count]._x=newX;
mc["but"+count]._y=y;
mc["but"+count].setSize(sizeX,sizeY); Code: var btn = mc.attachMovie("Button","but"+count,count);
btn.setLabel(all[i][a]);
btn.useHandCursor=true;
btn._x=newX;
btn._y=y;
btn.setSize(sizeX,sizeY); Geändert von [je] (30-03-2005 um 21:21 Uhr) |
| | |
| | #3 (permalink) |
| Nicht sehr eloquent! Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 181
|
Hallo [je], vielen Dank ersteinmal. So funktioniert es jetzt. Habe auch deinen Tip umgesetzt. Was ich aber von der Logik her nicht so richtig verstehe ist, warum der Button Zugriff auf die lokale Variable ref hat?
__________________ In the life of a Flash developer, only one thing is guaranteed: Change. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |