Toon posts:

[FLASH MX 2004] Dynamisc tekstlinks maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik wil dynamisch een rij tekst_links (buttons) genereren, eigenlijk een soort html links maar dan links die kunnen verwijzen naar een flash frame.

Hoe kun je dus dynamisch een zelfgemaakte button een aantal keer onder elkaar genereren?

Ik weet hoe het gaat met de Components maar ik wil niet van die lelijke buttons gebruiken, ik wil gewoon een rollover tekstje hebben.

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 25-03 10:55

XangadiX

trepanatie is zóó kinderachtig

hmm, je verwoord het wat moeilijk maar ik denk dat je het volgende wil:

maak je button en zet in plaats van static text of een button oid een textfield in je button
dupliceer die button en noem ze button1, 2, 3, etc.
Al je rollover animatie kun je in die button stoppen.

je script ziet er dan ongeveer zo uit (let op! geen letterlijke code, maar code hints, want ik ben lui vandaag en heb geen zin om het te testen, het gaat om het idee)

Flash ActionScript:
1
2
3
4
5
6
7
8
9
//definieer een array met je buttons en je namen ervan
buttonArray = new Array("dit is menu item 1", "dit is menu item 2", "dit is menu item 3")

for (i=0; i<buttonArray.length; i++) {
 duplicateMovieClip(button, "button" add i, i+1000)  //dupliceer en noem de volgende button1, 2, 3
 this["button" add i]._x =  10 + i*this["button" add i].height // schuif de volgende button, button._height naar beneden
 this["button" add i]._y = 10 //waar staan de buttons horizontaal
 this["button" add i].textfield.text = buttonArray[i]
}


door je button array nu uit te breiden kun je meerdere variabelen gaan doorsturen; bijvoorbeeld dingen als buttonName, buttonURL, buttonTarget etc.
Dan krijg je zoiets als

Flash ActionScript:
1
2
3
4
5
6
7
buttonArray = [     //nu twee dimensionaal
                     [ "home", "http://www.bla.com", "_top" ], 
                     [ "menu item 2", "http://www.bla.com", "_blank" ],
                     [ "menu item 3", "http://www.bla.com", "_blank" ],
                     [ "menu item 4", "http://www.bla.com", "_blank" ],
                     [ "menu item 5", "http://www.bla.com", "_blank" ]
                     ]


in de button hoef je alleen maar te zorgen dat het opgevangen wordt en als je het in de loop met this.button.variabele set moet het werken

[ Voor 11% gewijzigd door XangadiX op 26-03-2005 11:16 ]

Stoer; Marduq


Verwijderd

Topicstarter
Ok dit is allright, maar ik wil dus die buttons dynamisch aanmaken, ik weet niet van te voren hoeveel buttons ik zal krijgen.

Ik wil dus:

while(het loadvars query object nog gevuld is){

maak button, noem hem button_1, en zet deze tekst uit de query erin, geef hem een onRelease goto() mee,zet er een actie variabele bij, en verplaats nu deze button 20 pixels naar beneden

}

Verwijderd

Topicstarter
Tenzij ik:

dupliceer die button en noem ze button1, 2, 3, etc.

op een 'handmatige' manier geinterperteerd hebt wat ik denk...

Verwijderd

Topicstarter
Ok, het werkt deels..

code:
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
32
33
stop();

    
      lv = new LoadVars();
      lv.load('lineUp.php'+'?random='+getTimer());
      lv.onLoad = loadComboVariables;
          
  function loadComboVariables(success){

   if(success){

    i = 0;
    amount = lv.nrows;  
    while (amount>0) {
        duplicateMovieClip (_root.klik, "mc"+i, i); // klik is de naam van mijn button
        setProperty ("mc"+i, _x, 0);
        setProperty ("mc"+i, _y, i*45);
        setProperty ("mc"+i, _xscale, 100);
        setProperty ("mc"+i, _yscale, 40);
                  
                 // hier gaat het fout, de tekst 'hoi'  wil niet in het tekstveld komen
                 // nu las ik dat gedupliceerde movieclips geen variabelen mee copieren
                 // geldt dat dan ook voor dynamische textfields?
                 // en hoe spreek ik de moviclip aan?

        this["mc"+i].tekst.text = "hoi"; // tekst is de naam van mijn textfield in de movieclip 'klik'
        
                i++;
        amount--;
    }
    
      }
   }


zie commentaar in script

[ Voor 10% gewijzigd door Verwijderd op 29-03-2005 12:02 ]


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 25-03 10:55

XangadiX

trepanatie is zóó kinderachtig

je interpreteerd button1, 2, 3 inderdaad niet zoals ik bedoel. Ik geef de array alleen als voorbeeld; of dat nou inderdaad een array is; of een xml bestand maakt niet uit. Het principe blijft hetzelfde.

Waarom het fout gaat is omdat je this. gebruikt terwijl je de rest doodleuk op de _root hebt gezet (note dat ik overal 'this' voor heb gezet') Je originele movie (klik) komt van _root en niet van this. dus ik gok (maar dat zou je even moeten tracen) dat _root["mc"+i].tekst.text = "hoi"; wel werkt.

:Y)

Stoer; Marduq

Pagina: 1