Avatar billede Shasim Novice
10. juni 2003 - 12:17 Der er 10 kommentarer og
1 løsning

_duplicateMovieClip - men kun én gang!

Jeg har "lånt" et script fra en tutorial, som kan duplikere x-antal klip når man trækker dem til et bestemt område. Det jeg nu mangler er at kunne trække rundt med klippene når de befinder sig i området, men uden de duplikerer sig igen.
Er der mon nogen der kan hjælpe med det?
Sådan ser koden ud:

onClipEvent (load) {
   
    function buildIconList() {
        spacing=30;
        iconY=480;
        iconX=310;
        var i=-1;
        while (++i<_root.icon._totalFrames) {
            newName="icon"+i;
            _root.icon.duplicateMovieClip(newName,10000+i);
            _root[newName]._x=iconX;
            _root[newName]._y=iconY+i*spacing;
            _root[newName].gotoAndStop(i+1);
        }
    }
    function iconReleased (name) {
        if (_root.canvas.hitTest(_root._xmouse,_root._ymouse)) {
            ++v;
            newName="object" + v;
            _root[name].duplicateMovieClip(newName, v);
            _root[newName].gotoAndStop(_root[name]._currentFrame);
            //_root[newName].iconButton.enabled=false;
           
        }
        _root[name]._x = _root[name].homeX;
        _root[name]._y = _root[name].homeY;
        }
    buildIconList();
}


:) Shanne
Avatar billede hoejrup Nybegynder
10. juni 2003 - 13:25 #1
Har du prøvet at fjerne funktionen iconReleased ?

/per
Avatar billede Shasim Novice
10. juni 2003 - 13:37 #2
Gør jeg det, så fjerner jeg jo også min duplicateMovieClip. Kan du forklare hvor du vil hen?
Avatar billede hoejrup Nybegynder
10. juni 2003 - 14:11 #3
Ok! Du vil kun duplikere dem, og derefter trække rundt med dem. så du bliver nød til at lave en kanp med en der sætter en variabel. F.eks. _root.duplicate = false;

onClipEvent (enterFrame) {
    if (_root.duplicate == true) {
        if (_root.canvas.hitTest(_root._xmouse, _root._ymouse)) {
            ++v;
            newName = "object"+v;
            _root[name].duplicateMovieClip(newName, v);
            _root[newName].gotoAndStop(_root[name]._currentFrame);
            // _root[newName].iconButton.enabled=false;
        }
        _root[name]._x = _root[name].homeX;
        _root[name]._y = _root[name].homeY;
        buildIconList();
    }
}

/per
Avatar billede hoejrup Nybegynder
10. juni 2003 - 14:12 #4
knap = kanp
Avatar billede Shasim Novice
10. juni 2003 - 14:28 #5
Jeg er ikke helt med på: "så du bliver nød til at lave en kanp med en der sætter en variabel. F.eks. _root.duplicate = false;" og hvor mener du at det script du viser skal sidde (er det i stedet for noget andet?) Undskyld, jeg er lidt tung ...
Avatar billede mat Nybegynder
10. juni 2003 - 23:20 #6
personligt synes jeg det ville være federe hvis du forklarede præcist hvad det er du vil, istedet for at sidde og modificere på et script taget ud af kontekst. Hoejrup har sådan set ret, du kan stoppe yderligere dublikater med en boolean.

mvh mat
Avatar billede Shasim Novice
11. juni 2003 - 08:28 #7
mat>> Hvis jeg var i stand til selv at skrive et script, så ville jeg have gjort det, og sikkert også vidst hvordan jeg stoppede yderligere duplikater med en boolean. Jeg fandt dette script, og mente at det var lige det jeg skulle bruge, men så viste der sig jo lige et par detaljer ...
Som jeg siger ovenfor har jeg brug for at kunne trække/duplikere et klip til et bestemt område, og herefter trække duplikaten rundt inden for området (det kan jeg med ovenstående script), men det skal være uden at den duplikerer sig igen. Ovenfor er det egentligt originalen man trækker - kopien lægger sig på den sidst registrerede x-y-pos.
Avatar billede mat Nybegynder
14. juni 2003 - 14:12 #8
Det var nu ikke for at fornærme dig at jeg skrev som jeg gjorde - det var bare en personlig konstatering.

Jeg synes stadig ikke helt præcist jeg kan se hvor det bærer hen, men jeg har lavet et lille eksempel på en dublikering der forekommer een gang ved at dragge movieclippet ind i en anden movieclip (instancenavn "box"):

onClipEvent (load) {
    copy = true; // der kan kopieres :)
}
on (press) {
    startDrag(this, true);
}
on (release) {
    stopDrag();
}
onClipEvent (enterFrame) {
    if (copy && this.hitTest(_root.box)) { // hvis copy er true og clippet rammer "box" kopier!
        duplicateMovieClip(this, "nm", 1000);
        copy = false; // eftersom den nu er false og aldrig bliver true igen er der blokeret for yderligere dublikater
    }
}

mvh mat
Avatar billede Shasim Novice
14. juni 2003 - 19:10 #9
Jeg er ikke fornærmet, og tak for din indsats.
Da hoejrup ligesom "faldt ud", og du (tror jeg) har leveret varen, vil du så ikke have nogle points?

:) Shanne
Avatar billede mat Nybegynder
15. juni 2003 - 00:13 #10
Hej igen

Jeg tror næppe jeg har "leveret varen". Jeg har blot lavet et allerførste udkast til en funktionalitet der minder om det du efterspørger (som jeg tolker det). Meningen var så at du kunne teste det og vende tilbage, så kan vi udbygge funktionaliteten derfra :)

(jeg lægger dette som et svar, men du skal ikke føle dig forpligtiget til at acceptere, hvis der skal tilføjes mere)

mvh mat
Avatar billede Shasim Novice
15. juni 2003 - 09:29 #11
Hej mat

Jeg accepterer, og vil så gå igang med at prøve dit forslag af i morgen. Så kan jeg jo vende tilbage, hvis noget ikke virker helt som ventet. Håber det vil være ok ...

:) Shanne
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