| |||||||
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) |
| Neuer User Registriert seit: Mar 2010
Beiträge: 15
| Verschiedene MC's aus Array anzeigen
Hallo, hab da ein problem, mit dem ich nciht weiterkomme. Hab leider auch noch nichts gefunden... Also es geht um folgendes: ich erstelle dynamisch felder, die einen Mouse-Over-Listener erhalten. Die ausgelöste Funktion soll dann ein passendes Textfeld anzeigen, das dann bei Mouse-Out wieder verschwindet. Die Position des Feldes, sowie des Textfeldes sind in einem Array gespeichert(bzw. daraus berechnet). Jetzt habe ich das problem, dass immer nur der letzte Eintrag des Arrays genutzt wird. Ich habe mir daher überlegt, ein zusätzliches Array zu erstellen, in dem die Instanzen des Textfeldes mit dem jeweiligen Inhalt gespeichert werden. Die können dann bei Bedarf mit dem Mouse-Over geholt und angezeigt werden. Klappt aber nicht. Und ich weiss nicht warum. Vielleicht ha von euch ja jemand eine Idee. Der Code, mit dem die Felder und Textfelder erstellt werden sollen(das ganze ist Teil einer größeren Funktion, innerhalb derer auch eine for-schleife ist, die Variable i und die anderen Variablen sind definiert): Code:
var tag_inst = new parla_mc();
tag_inst.x = jahres_pxl + pos_tag;
tag_inst.y = 162;
tag_inst.addEventListener(MouseEvent.MOUSE_OVER, eing1_func);
tag_inst.addEventListener(MouseEvent.MOUSE_OUT, eing1_1_func);
addChild (tag_inst);
var eing1_arr:Array = new Array();
eing1_arr.push(new textfeld_mc);
eing1_arr[i].x = (jahres_pxl + pos_tag)-7;
eing1_arr[i].y = 100-((jahres_pxl + pos_tag)/500)*75;
eing1.feld.text = veroeffentl_arr[durchlauf].ereignis;
eing1.feld.wordWrap = true;
addChild(eing1_arr[i]);
function eing1_func(e:MouseEvent):void{
addChild(eing1_arr[i]);}
function eing1_1_func(e:MouseEvent):void{
removeChild(eing1);} Gruß, Markus |
| | |
| | #2 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Am besten Du speicherst die Variable "i" für jedes Objekt.
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #4 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Hier mal ein einfaches Beispiel mit meinen bescheidenen AS 3.0 Kenntnissen zusammengeklöppelt: PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Mar 2010
Beiträge: 15
|
Hmm, also das war noch anders gemeint. Also ich erstelle erst ein Feld: Code: var tag_inst = new parla_mc(); tag_inst.x = jahres_pxl + pos_tag; tag_inst.y = 162; tag_inst.addEventListener(MouseEvent.MOUSE_OVER, eing1_func); tag_inst.addEventListener(MouseEvent.MOUSE_OUT, eing1_1_func); addChild (tag_inst); Code: eing1_arr.push(new textfeld_mc); eing1_arr[i].x = (jahres_pxl + pos_tag)-7; eing1_arr[i].y = 100-((jahres_pxl + pos_tag)/500)*75; eing1_arr[i].feld.text = veroeffentl_arr[durchlauf].ereignis; eing1_arr[i].feld.wordWrap = true; Code: function eing1_func(e:MouseEvent):void{
addChild(eing1_arr[i]);}
function eing1_1_func(e:MouseEvent):void{
removeChild(eing1_arr[i]);} Code: function tags_positionieren()
{
for ( var i = 0; i<veroeffentl_arr.length; i++)
{
var durchlauf:int = i;
var jahrestag:uint = new uint();
var monat:int = new int();
monat = veroeffentl_arr[i].monat ;
jahrestag = monate_arr[monat-1].tage + veroeffentl_arr[i].tag;
//Abschnitt bestimmen
var dieses_jahr:int = veroeffentl_arr[i].jahr - heute_jahr + (jahre -1);
var jahres_pxl:uint = new uint();
jahres_pxl = dieses_jahr*abschnitts_gr;
//tagesposition bestimmen
var hilf1:Number = new Number();
hilf1 =(abschnitts_gr/365)*jahrestag;
var pos_tag:uint = new uint();
pos_tag = Math.round(hilf1);
//position in array eintragen
var tag_position:uint = new uint();
tag_position = pos_tag + jahres_pxl;
zahlen_arr.push(tag_position);
//objekte einfügen
//****1.Parlament****
if (veroeffentl_arr[i].institution == 1)
{
var tag_inst1 = new parla_mc();
tag_inst.x = jahres_pxl + pos_tag;
tag_inst.y = 162;
tag_inst.addEventListener(MouseEvent.MOUSE_OVER, eing2);
tag_inst.addEventListener(MouseEvent.MOUSE_OUT, eing2_1);
addChild (tag_inst1);
var eingabe1 = new textfeld_mc();
eingabe1.x = (jahres_pxl + pos_tag)-7;
eingabe1.y = 100-((jahres_pxl + pos_tag)/500)*75;
eingabe1.feld.text = veroeffentl_arr[durchlauf].ereignis;
eingabe1.feld.wordWrap = true;
function eing1(e:MouseEvent):void{
addChild(eingabe1);
}
function eing2_1(e:MouseEvent):void{
removeChild(eingabe1);
}
}
//****2. Rat*****
else if (veroeffentl_arr[i].institution == 2)
{
var tag_inst1 = new rat_mc();
tag_inst1.x = jahres_pxl + pos_tag;
tag_inst1.y = 162;
tag_inst1.addEventListener(MouseEvent.MOUSE_OVER, eing2);
tag_inst1.addEventListener(MouseEvent.MOUSE_OUT, eing2_1);
addChild (tag_inst1);
var eingabe2 = new textfeld_mc();
eingabe2.x = (jahres_pxl + pos_tag)-7;
eingabe2.y = 100-((jahres_pxl + pos_tag)/500)*75;
eingabe2.feld.text = veroeffentl_arr[durchlauf].ereignis;
eingabe2.feld.wordWrap = true;
function eing2(e:MouseEvent):void{
addChild(eingabe2);
}
function eing2_1(e:MouseEvent):void{
removeChild(eingabe2);
}
}
//*****Kommission*****
else if (veroeffentl_arr[i].institution == 3)
{
var tag_inst2 = new comiss_mc();
tag_inst2.x = jahres_pxl + pos_tag;
tag_inst2.y = 162;
tag_inst2.addEventListener(MouseEvent.MOUSE_OVER, eing3);
tag_inst2.addEventListener(MouseEvent.MOUSE_OUT, eing3_1);
addChild (tag_inst2);
var eingabe3 = new textfeld_mc();
eingabe3.x = (jahres_pxl + pos_tag)-7;
eingabe3.y = 100-((jahres_pxl + pos_tag)/500)*75;
eingabe3.feld.text = veroeffentl_arr[durchlauf].ereignis;
eingabe3.feld.wordWrap = true;
function eing3(e:MouseEvent):void{
addChild(eingabe3);
}
function eing3_1(e:MouseEvent):void{
removeChild(eingabe3);
}
}
}
} |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2010
Beiträge: 15
|
Hmm, zu schwer verständlich, oder hab ich zu viel Code reingemacht. Ich suche im Prinzip nur nach ner Möglichkeit, Inhalte aus nem Array durch Mouseover anzeigen zu lassen. Und die Gibts da keine Möglichkeit? Und die Buttons, die das Mouseover beinhalten, sollen auch dynamisch aus dem Array erstellt werden. Hmm...
|
| | |
| | #7 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
Man kann in Actionscript 3 auch Klassen erstellen. Eine Klasse Feld erzeugt in sich ein Textfeld wenn sie überrollt wird. in einer Schleife erstellst du dann alle Felder die du gern hättest. fertig.
__________________ anbei Grüße vom milchreis: Viva la [Silb] [Von null auf Flash in einem Klick.] <<< klick |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Verschiedene Rechte in Array | Darian | ActionScript 3 | 1 | 27-08-2009 15:46 |
| Verschiedene Videos im gleichen Player anzeigen | Kangooroo | Flash Einsteiger | 0 | 08-06-2007 12:21 |
| Verschiedene dynamische Inhalte anzeigen | Patric Simon | Flash MX 2004 | 5 | 09-07-2004 11:17 |
| Array in verschiedene textfelder | Phantomas | ActionScript 1 | 6 | 17-09-2002 17:54 |
| Verschiedene Variablen mit einem Textfeld anzeigen?? | Rudi Ratlos | ActionScript 1 | 8 | 07-08-2001 15:45 |