ID von Dynamischen Buttons [Flash 10]
| Beiträge: 31 Wohnort: Schweiz Registriert: Feb 2007
| 14.10.2009, 17:00
Hallo zusammen
Wie bringe ich die aktuelle Variable i von dem Button den ich klicke in die Funktion, damit ich weiss welchen Text ich ausgeben muss aus der XML.
Danke schon mal im Voraus.
Gruss Manuel
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | for(var i = 0; i < xml_page.seiten.seite[page_id].liste.kat.length(); i++)
{
btn_array_list[i] = new btn_kat_mc();
btn_array_list[i].x = 360;
btn_array_list[i].y = 200 + (i * 40);
btn_array_list[i].i = i;
btn_array_list[i].addEventListener(MouseEvent.CLICK,getTextList);
liste_mc.addChild(btn_array_list[i]);
}
function getTextList(e:MouseEvent)
{
// trace(""+ xml_page.seiten.seite[page_id].liste.kat.kat_text[i]+"");
}
|
Homepage: www.xPager.ch | | | Beiträge: 992 Wohnort: ..::LAGE::.. Registriert: Apr 2006
| 14.10.2009, 18:45
hey,
wenn du eh deine eigene klasse "btn_kat_mc" geschrieben hast, kannst du doch dort deine variable vorsehen. also eine:
public var i : Number;
definieren, die du in deiner schleife füllst.
abrufen kannst du es dann in deiner funktion über:
e.currentTarget.i;
probiers mal.
grüße
flowww.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring | | | Beiträge: 31 Wohnort: Schweiz Registriert: Feb 2007
Themenautor/in
| 14.10.2009, 19:00
Danke für die Antwort aber btn_kat_mc ist kein Klasse sonder ein Objekt (Button) aus der Bibliothek.Homepage: www.xPager.ch | | | Beiträge: 1004 Registriert: Jul 2008
| 14.10.2009, 19:56
Hi,
speicher die Buttons in einem Array, und bei Klick liest Du den Index des Buttons aus dem Array aus. Ungefähr so:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var btn_arr:Array = new Array();
for (var i:uint = 0; i<5; i++) {
var _btn:Btn = new Btn();
_btn.x = 10;
_btn.y = i*30 + 10;
_btn.addEventListener(MouseEvent.CLICK, traceIndex);
addChild(_btn);
btn_arr.push(_btn);
}
function traceIndex(evt:MouseEvent):void {
trace(btn_arr.indexOf(evt.target));
}
|
Grüße,
KerstinWer Rechtschreibfehler findet, darf sie gerne behalten. | | | Beiträge: 992 Wohnort: ..::LAGE::.. Registriert: Apr 2006
| 14.10.2009, 20:03
hey,
naja genau genommen ist auch dein button in der bib eine klasse.
immerhin erstellst du mit "new" eine instanz einer klasse.
wenn du es richtig machen willst, kannst du deinem button in der
bib eine andere basisklasse geben...
Bsp:
1. speicher eine .as Datei mit dem namen "ButtonClass.as" in den selben
Ordner wo deine .fla liegt.
2. der inhalt der datei ist:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package
{
import flash.display.*;
public class ButtonClass extends MovieClip
{
private var id : Number;
public function ButtonClass():void
{
return;
}
public function get i():Number
{
return id;
}
public function set i( _id : Number ):void
{
id = _id;
}
}
}
|
3. wie hier beschrieben die Basisklasse ändern. Den Klassennamen besser groß schreiben.
4. eine instanz deiner klasse erstellst du nun mit:
btn_array_list[i] = new Btn_kat_mc();
btn_array_list[i].i = i;
Das sollte so klappen.
Hoffe das ist jetzt nicht zu viel.... ist jedenfalls der schönere weg.
gruß
flo
EDIT: War da jemand schneller?!www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring | Geändert von derFloh am 14.10.09 um 20:06 Uhr | |
| | Beiträge: 31 Wohnort: Schweiz Registriert: Feb 2007
Themenautor/in
| 14.10.2009, 20:41
Ok ich werde es einmal versuchen.
Danke schon mal.Homepage: www.xPager.ch | Geändert von manuel.kleinert am 14.10.09 um 20:41 Uhr | |
| | Beiträge: 31 Wohnort: Schweiz Registriert: Feb 2007
Themenautor/in
| 14.10.2009, 21:00
Ich habe jetzt die variante von Kerstin77 genommen und es hat wunderbar geklappt.
Danke nochmal
Hier könnte ihr noch sehen für was ich das brauche. hierHomepage: www.xPager.ch | |
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|