Avatar billede skooter Nybegynder
20. april 2007 - 08:30 Der er 5 kommentarer og
1 løsning

minfunktion() vs minfunktion(val)

Jeg har følgende kode som virker uden problemer. Jeg bruger funktionerne til at bladre gennem forskellige rammer/vinduer til en tegneserie.

--------------------------------------------------

var a = 1;
var b = 1;
var c = 1;

function nextFrameType1() {
    duplicateMovieClip(_root["frame_type"+a], "new_frame1"+a, 1);
    _root["new_frame1"+a]._x = 345;
    _root["new_frame1"+a]._y = 80;
   
    a = a + 1;
    if (a > 3) {
        a = 1;
    }
}
function nextFrameType2() {
    duplicateMovieClip(_root["frame_type"+b], "new_frame2"+b, 2);
    _root["new_frame2"+b]._x = 345;
    _root["new_frame2"+b]._y = 310;
   
    b = b + 1;
    if (b > 3) {
        b = 1;
    }
}
function nextFrameType3() {
    duplicateMovieClip(_root["frame_type"+c], "new_frame3"+c, 3);
    _root["new_frame3"+c]._x = 345;
    _root["new_frame3"+c]._y = 540;
   
    c = c + 1;
    if (c > 3) {
        c = 1;
    }
}

change_frame1.onPress = nextFrameType1;
change_frame2.onPress = nextFrameType2;
change_frame3.onPress = nextFrameType3;

--------------------------------------------------

Men hvordan kan jeg skrive funktionerne sammen til en. Jeg har prøvet men når jeg skriver følgende så bliver funktionen kaldt inden jeg klikker på knappen/movieklippet:

function minfunktion(val) {
  trace(val);
}
change_frame.onPress = minfunktion("nr. 1");
Avatar billede mat Nybegynder
20. april 2007 - 13:48 #1
function minfunktion( val ) {
    trace( val );
}

for ( var i = 1; i < 4; i++ ) {
    this["knap"+i].val = i;
    this["knap"+i].onRelease = function (){ minfunktion(this.val); }
}

mvh mat
Avatar billede skooter Nybegynder
02. maj 2007 - 08:24 #2
Jeg har forsøgt at gøre som herunder. Jeg kan godt bladre i mine rammmer men de bliver placeret samme sted :-S

function nextFrameType(val, ypos) {
    duplicateMovieClip(_root["frame_type"+f], "new_frame"+val+f, val);
    _root["new_frame"+val+f]._x = 345;
    _root["new_frame"+val+f]._y = ypos;
   
    f += 1;
    if (f > 3) {
        f = 1;
    }
}


for (val=1; val < 4; val++) {
    _root["change_frame"+val].onPress = function () { nextFrameType(val, ypos); };
    ypos += 230;
}
Avatar billede mat Nybegynder
02. maj 2007 - 13:07 #3
for (val=1; val < 4; val++) {
_root["change_frame"+val].ypos = ypos;
    _root["change_frame"+val].onPress = function () { nextFrameType(val, this.ypos); };
    ypos += 230;
}
Avatar billede skooter Nybegynder
07. maj 2007 - 14:28 #4
Hmm... ja nu ligger rammerne sig i samme lag... Så når jeg klikker på knappen forsvinder første ramme. Der skal kunne vises 3 rammer samtidig... Og hver af de 3 rammer kan have forskelligt udseende.
Men kunne da godt være der var en smartere måde at gøre det på...
Avatar billede skooter Nybegynder
10. maj 2007 - 16:06 #5
Så lykkedes det mig at korte det ned... Tak for hjælpen mat. Vil du have points?

Er er min kode....

var a = 1;
var b = 2;
var c = 3;

function nextFrameType(frame_no, selected_frame, ypos) {
    duplicateMovieClip(_root["frame_type"+selected_frame], "new_frame"+frame_no+selected_frame, frame_no);
    _root["new_frame"+frame_no+selected_frame]._x = 345;
    _root["new_frame"+frame_no+selected_frame]._y = ypos;
   
    selected_frame += 1;
    if (selected_frame > 3) {
        selected_frame = 1;
    }
    return selected_frame;
}

change_frame1.onPress = function () { a = nextFrameType(1, a, 80); }
change_frame2.onPress = function () { b = nextFrameType(2, b, 310); }
change_frame3.onPress = function () { c = nextFrameType(3, c, 540); }
Avatar billede mat Nybegynder
10. maj 2007 - 19:11 #6
aight
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