Avatar billede sako Nybegynder
07. juni 2004 - 21:51 Der er 11 kommentarer og
2 løsninger

knap i et kopieret MovieClip

Jeg har fået hjælp til et script der kan kopier x antal moviclips - og det virker kanont - men nu vil jeg gerne ligge en "onPress" på de enkelte movieClip - det har jeg gjort med

mc.onPress = function (){
_root.mask.menu = i;
}

Hvor i er den værdi der bliver lavet med "For-løkken".

Alle MCèrne bliver godt nok aktive men de får ikke værdien fra i ??? - kan man ikke gøre det på den måde ??

var x = 0;
var y = 0;
var w = knap._width;
var h = knap._height;
var antal = 100;
var nyLinie = 5;
    for (var i = 0; i<=antal; i++) {
    mc = knap.duplicateMovieClip("mc"+i, i, {_x:x, _y:y});
    mc.onPress = function (){
    _root.mask.menu = i;
    }
    mc.tekst_txt.text = i;
    x = (i%nyLinie == 0) ? 0 : x+w;
    y = (i%nyLinie == 0 && i != 0) ? y+h : y;
}
Avatar billede kragekjaer Praktikant
07. juni 2004 - 22:35 #1
prøv at sætte denne ind:

mc.i=i; efter

mc = knap.duplicateMovieClip("mc"+i, i, {_x:x, _y:y});
Avatar billede sako Nybegynder
08. juni 2004 - 08:40 #2
Det virker desværre heller ikke -

Hvis jeg udskifter i med et tal f.eks.

mc.onPress = function (){
_root.mask.menu = 4;
}

Så får alle mine MC selvfølgelig værdien 4 - men det virker som det skal ????
Avatar billede sako Nybegynder
08. juni 2004 - 09:09 #3
hmm hvis jeg tracer i - returnerer den 101 - som jeg ikke fatter
Avatar billede sako Nybegynder
08. juni 2004 - 09:18 #4
kan man ikke lave onPress -uden at det skal ske via en function - det er self klart at den sætter i til 101 - når functionen bliver aktiveret
Avatar billede _k Nybegynder
08. juni 2004 - 15:19 #5
Det er sikkert din forløkke den er gal med. Prøv med:

var k;
for (var i = 0; i<=antal; i++) {
    mc = knap.duplicateMovieClip("mc"+i, i, {_x:x, _y:y});
    k = eval(i);
    k.id = i;
    mc.onPress = function (){
    _root.mask.menu = this.id;
    }

...har lavet en lokal variabel som sætter det korrekte indhold af din knap. Alle de knapper du opretter kommer ellers til at indeholde den sidste værdi af i, da det først er når man trykker på knappen at den "leder" efter hvad den skal eksekvere.
Avatar billede _k Nybegynder
08. juni 2004 - 15:24 #6
(hov, du skal nok også lige ændre dine "mc"'er til "k" - eller omvendt!)
Avatar billede sako Nybegynder
08. juni 2004 - 15:31 #7
hmm - det virker ikke nu er MCèrne ikke aktive længere ?? -
Avatar billede sako Nybegynder
08. juni 2004 - 15:40 #8
stop !!! - det er helt korrekt det i skriver - egenligt er det Kragekjaer der smed det rigtige svar - men jeg kan lige oprette et andet spørgsmål så du også  kan få nogle points..
Avatar billede _k Nybegynder
08. juni 2004 - 15:48 #9
ok - testede eller lige at den her funker:

var k;
for (var i = 0; i<=antal; i++) {
    mc = knap.duplicateMovieClip("mc"+i, i, {_x:x, _y:y});
    k = eval("mc" + i);
    k.id = i;
    trace(i);
    k.onPress = function() {
        _root.mask.menu = this.id;
    };
Avatar billede sako Nybegynder
08. juni 2004 - 16:00 #10
smid et svar så¨deler i dem .
Avatar billede _k Nybegynder
08. juni 2004 - 16:01 #11
ok
Avatar billede sako Nybegynder
08. juni 2004 - 16:11 #12
Tak for hjælpen til begge
Avatar billede _k Nybegynder
08. juni 2004 - 16:18 #13
selv tak. Tak for point. Og held og lykke med det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester