Avatar billede kalleballe Nybegynder
12. november 2003 - 16:11 Der er 16 kommentarer og
1 løsning

loope igennem data i stedet for hardcode

måske du kan sige mig hvordan jeg kan lave en løkke der løber denne klump igennem :


createEmptyMovieClip("projectClip", 0);
projectClip.attachMovie("project1", "project1", 1);
with (projectClip.project1) {
    _alpha = 50;
    myText = ProjectText[0];
}
//
//
loop start
//
projectClip.createEmptyMovieClip("baseClip1", 2);
projectClip.baseClip1.attachMovie("project1", "clip1", 3);
projectClip.baseClip1._y += projectClip.baseClip1._height;
//
with (projectClip.baseClip1) {
    clip1.myText = PhaseText[0];
    clip1.onPress = _root.pressIt;
    //
}
//
//
projectClip.baseClip1.createEmptyMovieClip("baseClip2", 4);
projectClip.baseClip1.baseClip2.attachMovie("project1", "clip2", 5);
projectClip.baseClip1.baseClip2._y += projectClip.baseClip1.baseClip2._height;
//
with (projectClip.baseClip1.baseClip2) {
    clip2.myText = PhaseText[1];
    clip2.onPress = _root.pressIt;
    //
    //
}
//
projectClip.baseClip1.baseClip2.createEmptyMovieCLip("baseClip3", 6);
projectClip.baseClip1.baseClip2.baseClip3.attachMovie("project1", "clip3", 7);
projectClip.baseClip1.baseClip2.baseClip3._y += projectClip.baseClip1.baseClip2.baseClip3._height;
//
with (projectClip.baseClip1.baseClip2.baseClip3) {
    clip3.myText = PhaseText[2];
    clip3.onPress = _root.pressIt;
}

mit største problem er hvordan jeg laver:

projectClip.baseClip1.baseClip2.etc...
Avatar billede barklund Nybegynder
12. november 2003 - 16:17 #1
Jeg gentager min kommentar fra det andet spørgsmål:

Hvad er årsagen til, at du nester dine movieclips inden i hinanden? Det ligner jo umiddelbart, at det skal eksistere på samme niveau - i hvert fald din baseClips... Skal de være inden i hinanden?
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:22 #2
i lige måde ;-)
Det er fordi jeg laver en menu, - ved at neste mc så kan jeg klikke på clip1 i baseClip1 og blot fortælle baseClip2 at den skal rykke ned, - så rykker alt andet automatisk... det er i hvertfald min lumske bagtanke ;-)

altså jeg kun 1 animation
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:28 #3
ok, -
top = "projectClip.baseClip1"
//
for (var i = 1; i<PhaseText.length; i++) {
    //
   
    //
    projectClip.createEmptyMovieClip("baseClip"+i, i+1);
    projectClip.baseClip1.attachMovie("project"+i, "clip"+i, i+2);
    projectClip.baseClip1._y += projectClip.baseClip1._height;
    //
    with (projectClip.baseClip1) {
        clip1.myText = PhaseText[0];
        clip1.onPress = _root.pressIt;
        //
    }
    top =top+(".baseClip"+(i+1))
   
    trace("top = " +top);
}

giver mig da de rigtige baseclips ;-)
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:28 #4
altså i trace("top....
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:30 #5
okay den skal så lige forstå top som et object og ikke en streng
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:47 #6
det her virker ikke helt..

top = 'projectClip';
//
for (var i = 1; i<PhaseText.length; i++) {
    //
    //
    top = eval(top);
    //
    top.createEmptyMovieClip("baseClip"+i, i);
    top.attachMovie("project"+i, "clip"+i, i+1);
    top._y = top._y+30*i;
    //
    with (top.clip+i) {
        myText = PhaseText[i-1];
        onPress = _root.pressIt;
        //
    }
    top = top+".baseClip"+(i);
    trace("top = "+top);
}
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:52 #7
Det her virker ;-)
for (var i = 1; i<PhaseText.length; i++) {
    //
    //
    top = eval(top);
    //
    top.createEmptyMovieClip("baseClip"+i, i);
    top.attachMovie("project1", "clip"+i, i+100);
    top._y = top._y +30
    trace("top y = " +top._y);
    //
    top['clip'+i].myText = PhaseText[i-1];
    top['clip'+i].onPress = _root.pressIt;
    //
    top = top+".baseClip"+(i);
    trace("top = "+top);
}
Avatar billede barklund Nybegynder
12. november 2003 - 16:58 #8
Følgende er lige en anelse kønnere, synes jeg - men ellers en nydelig løsning :)

var top = projectClip;
var m;
for (var i = 1; i<PhaseText.length; i++) {
    //
    top.createEmptyMovieClip("baseClip"+i, i);
    m = top.attachMovie("project1", "clip"+i, i+100);
    top._y = top._y+30
    //
    m.myText = PhaseText[i-1];
    m.onPress = _root.pressIt;
    //
    top = top["baseClip"+i];
}
Avatar billede kalleballe Nybegynder
12. november 2003 - 16:59 #9
;-) taks
Avatar billede kalleballe Nybegynder
12. november 2003 - 17:05 #10
Synes du at det er en hel dum måde at lave en animeret venstre menu på, - lidt a la xp's?

Det er da ret så skønt, at man ikke behøver at tænke på hvad der forgår nede i de forskellige baseclips... de lever deres eget stille liv..
Avatar billede barklund Nybegynder
12. november 2003 - 17:10 #11
Nææ, sådan set ikke... Det er vel meget fornuftigt :)
Avatar billede kalleballe Nybegynder
12. november 2003 - 17:12 #12
okay tak, - det er jo bare noget jeg har fundet på ud af den blå luft, - uakk!!
Avatar billede kalleballe Nybegynder
13. november 2003 - 14:12 #13
Du Barklund, -
hvorfor virker det her så ikke:

m.createEmptyMovieClip("baseClip"+(i+50), i+500);
n = m.attachMovie("project", "clip"+(i+50), i+400);

altså jeg vil gerne lave et tomt clip i mit nye clip, altså i m og i dette tomme clip vil jeg så proppe clippet n ind
Avatar billede barklund Nybegynder
13. november 2003 - 16:45 #14
Du putter ikke n ind i m.baseClip men derimod direkte parallet med i m:

m2 = m.createEmptyMovieClip("baseClip"+(i+50), i+500);
n = m2.attachMovie("project", "clip"+(i+50), i+400);
Avatar billede kalleballe Nybegynder
19. november 2003 - 16:15 #15
Tak, - men jeg kan simpelthen ikke få det til at virke :-(

Hvad er der dog galt her??

createMenuItems = function () {
    //
    createEmptyMovieClip("projectClip", 2);
    //
    top = projectClip;
    // vars to hold paths
    for (var i = 1; i<=PhaseText.length; i++) {
        //
        m2 = top.createEmptyMovieClip("baseClip"+i, i+8000);
        //
        m = top.attachMovie("project", "clip"+i, i+8100);
        //
        for (var s = 0; s<ActivitySetTexts[i-1].length; s++) {
            //
            l2 = m2.createEmptyMovieClip('sub_baseClip'+s, s+7000);
            //
            l = m2.attachMovie("project_subMenu", "clip"+s, 7100+s);
            //
            l._y += l.height;
            //
            for (var r = 0; r<ActivityTexts[i-1].length; r++) {
                //
                o2 = l2.createEmptyMovieClip('sub_sub_baseClip'+r, 6000+r);
                //
                o = l2.attachMovie("project_subSubMenu", "clip"+r, 6100+r);
                //
                //
                o._y += l._height+(o._height*r);
                //
            }
            //
        }
        //
        top._y = Math.floor(l._height-2);
        // asign id to Phase
        top = top["baseClip"+i];
        //
        topHolder.push(top);
        // create next child
    }
    //
    // making hide layer for last item in menu
    u = top.attachMovie("projectWhite", "clip"+i, i+100);
    //
    u._height = 150;
    //
    u._y = Math.floor(top._y+m._height);
};
//
//******** calling menu function *********
//
createMenuItems();
//
//****************************************


Det en skal gøre er følgende:


Jeg har 1 mc

I dette laver jeg et nyt baseClip mc og et clip mc.
I baseClip mc vil jeg så gerne have endnu et baseClip og et nyt clip mc
og i dette nye baseClip vil jeg så gerne have et nyt baseClip og et nyt clip mc
Avatar billede kalleballe Nybegynder
19. november 2003 - 16:45 #16
okay glem det, - du skal have tak for hjælpen, - jeg byttede lidt rundt på tingene og nu virker det ;-)

vh

KalleBalle
Avatar billede kalleballe Nybegynder
29. september 2004 - 22:10 #17
lukker
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