Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2004, 17:03   #1 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 9
"Links" dynamisch erstellen...

Ich "moechte" auf einer Flashseite zur Laufzeit dynamisch "Links" erstellen. Ich habe mich dann einfach der Funktion createTextField bedient, die darzustellenden Informationen als Text eingefuegt, und wollte dann per addListener auf einen Mausklick reagieren. Jetzt habe ich gesehen (natuerlich erst ganz zum Schluss) , dass man einem TextField aber bloss onChanged und ScrollBar als Listener Objekt hinzufuegen kann.
Ich muss die Felder dynamisch erzeugen und weiss vorher auch noch nicht, wie viele Felder es werden, da die Informationen aus einer Datenbank kommen.

Und nun stehe ich dezent bloed da und weiss nicht weiter.
Hat jemand einen Tip wie ich das anderweitig angehen kann? Ist ja eigentlich keine besonders herausfordernde Aufgabe, bloss bin ich n00b momentan einfach ueberfordert.
Runach ist offline   Mit Zitat antworten
Alt 04-08-2004, 17:24   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Ort: Hamburg
Beiträge: 99
mit myTxt.htmlText = "<a href="http://www.google.de" target="_blank">Google</a>";

müsste es eigentlich funktionieren. natürlich nur mit aktivierter html-funktion deines textfeldes (button mit icon "<>")
nesium ist offline   Mit Zitat antworten
Alt 04-08-2004, 17:24   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
zb!
ActionScript:
  1. var m=this.createEmptyMovieClip("mc", 100);
  2. m.createTextField("texter", 110, 100, 100, 0, 0);
  3. m.texter.background = true;
  4. m.texter.backgroundColor = 0xff9900;
  5. m.texter.border = true;
  6. m.texter.type = "dynamic";
  7. m.texter.selectable = false;
  8. m.texter.borderColor = 0x990000;
  9. m.texter.autoSize = "center";
  10. meinFormat = new TextFormat();
  11. meinFormat.size = 16;
  12. meinFormat.color = 0xff0000;
  13. m.texter.text = "test flyout";
  14. m.texter.setTextFormat(meinFormat);
  15. m.onPress = function() {
  16.     trace(m.texter._name);
  17. };
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 05-08-2004, 09:25   #4 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 9
Vielen Dank erst mal fuer die Antworten!
Mit href waere jetzt eher suboptimal, da ich innerhalb des Flashs einen anderen Frame anspringen moechte/muss.

@RustyCake
Wenn ich das richtig verstehe, umgehst du das Problem, indem Du "einfach" einen neuen MovieClip instanziierst und damit auch das onPress Event zur Verfuegung hast. Du nutzt also den MC um zu reagieren und das Textfeld nur fuer die Textanzeige. Das waere natuerlich eine Moeglichkeit, ich frage mich bloss, inwieweit das nicht frueher oder spaeter zu Performanceproblemen fuehrt? Ist es Flash letzten Endes egal, wie viele MC Instanzen geoeffnet sind?
Runach ist offline   Mit Zitat antworten
Alt 05-08-2004, 11:44   #5 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 9
So, ich habe das komplette Konstrukt jetzt mal geaendert, es aber immer noch nicht...
Mir scheint, als waere daran der zeitliche Ablauf Schuld. Die TextFields werden ja erst nach dem Einlesen diverser Variablen aus einer PHP Seite generiert. Also bin ich jetzt noch auf addListener umgestiegen, geht aber nicht. Ich bin mitterweile komplett mordbereit!

Hier mein Code, eventuell kann mir ja jemand weiterhelfen, auf dass ich nicht zum Amoklaeufer werde.

ActionScript:
  1. var lk = new LoadVars();
  2. lk.onLoad = function(success){
  3.    //Hier ist eine Schleife, die pro Datensatz dann die Klasse Kontakt aufruft
  4. };
  5. lk.load(http + "die Seite halt");
  6.  
  7.  
  8.  
  9. Kontakt = function(KontaktID, KontaktArt, KontaktWert){
  10.     //hier wird die Funktion createBox mit diversen Waviablen aufgerufen
  11.     createBox(curkw, mdepth, kartw, (curkontakt-1)*kwerth, kwertw, kwerth);
  12.  
  13.     //hier kommen noch Beschriftung und anderer blabla
  14. };
  15.  
  16. //Hier nun die wohl alles entscheidende Funktion...
  17. function createBox(strFieldName, mdepth, xposi, yposi, mwidth, mheight){
  18.         var mc = _root.createEmptyMovieClip(strFieldName + "_mc", mdepth);
  19.         mc.createTextField(strFieldName, mdepth + 1000, xposi, yposi, mwidth, mheight);
  20.         mc[strFieldName].type = "dynamic";
  21.         mc[strFieldName].html = true;
  22.         mc[strFieldName].selectable = false;
  23.         //der Verweis auf den Listener der nicht listen will *jammer*
  24.         mc.addListener(obj);
  25. };
  26.  
  27.  
  28. //und hier der Listener der nicht listen will persoenlich *mordundtotschlag*
  29. var obj = new Object();
  30. ASBroadcaster.initialize(obj);
  31. obj.onPress = function(){
  32.     trace("onPress");
  33. };
  34. obj.onMouseDown = function(){
  35.     trace("onMouseDown");
  36. };
Runach ist offline   Mit Zitat antworten
Alt 05-08-2004, 15:08   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 70
Du könntest beim Textfeld auch noch auf onSetFocus listen, aber ich weiß net ob der Focus net manchmal automatisch auf ein Textfield gesetzt wird.

In meiner Anwendung ab ich das dann wieder rausgenommen und so wie Rusty gemacht....
Benjy ist offline   Mit Zitat antworten
Alt 06-08-2004, 13:40   #7 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 9
Hat sich mittlerweile erledigt.
Ich musste nur einfach mal das onPress in die Funktion createBox reinnehmen.
Runach ist offline   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 20:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele