25. maj 2002 - 15:44
Der er
24 kommentarer og 1 løsning
position!
Hvordan gør jeg sådan at når man trækker et mc inden for et bestemt sted på scenen så går den til næste scene? Det skal være inden for et bestemt område...for eksempel hvis den er indenfor sådanne en rektangel: x: 0 - 100 og y: 0-50 ? (håber i forstår hva jeg mener?!)
Annonceindlæg fra Visma Enterprise
:Þ :) :P :D ;) :þ :© :‡ :o :| :® :O :p
Er det bare hvis man trækker det indover eller kun hvis man slipper det inde over
Jamen så er det bare: DragMovie.dragged = 0; DragMovie.onPress = function() { this.startDrag; this.dragged = 1; } DragMovie.onRelease = function() { this.stopDrag(); if (this.dragged && this.hitTest(_root.Square)) _root.nextScene(); this.dragged = 0; } Og så skal du have et movieclip med din firkant, der er den angivne størelse... Du kan for eksempel give den Square._alpha = 0, hvis man ikke skal kunne se den.. /Barklund
altså scriptet skal på mc'et der skal flyttes? hvad skal mc'et der skal flyttes instance name være? hvad skal firkanten hvor det andet mc skal droppes instance name være? square? ?
( en ting jeg lige vil vide dog...er det muligt at lave scriptet sådan at den udregner det ved at tjekke kordinater? (det skulle selfølgelig stadig være når man dropper at den skulle tjekke)...?)
MC'et der skal flyttes er i ovenstående script DragMovie... den anden er Square... Skal den udregne koordinater som den skal ramme inden for, så er det nemmeste faktisk at (jeg formoder du har MX, da al kode er dette) selv at lave dette Square-clip: x0 = 100; y0 = 50; x1 = 200; y1 = 100; _root.createEmptyMovieClip("square",10); with(_root.Square) { beginFill(0,0); moveTo(_root.x0,_root.y0); lineTo(_root.x1,_root.y0); lineTo(_root.x1,_root.y1); lineTo(_root.x0,_root.y1); endFill(); } DragMovie.dragged = 0; DragMovie.onPress = function() { this.startDrag(); this.dragged = 1; } DragMovie.onRelease = function() { this.stopDrag(); if (this.dragged && this.hitTest(_root.Square)) _root.nextScene(); this.dragged = 0; } Denne kode kan defineres i en hvilken som helst frame ude i _root. For eksempel frame 1... Dog skal movieclippet "DragMovie" allerede findes på scenen, når koden defineres...
øhm der kommer ingen squarefirkant?! :)
hvis den er usynlig...kan du så ikke fortælle mig hvor på scenen den ca. ligger?
Den er usynlig :o)... Ret i beginFill til (0,100), så er dens alpha = 100... (andet argument er alpha, det første er hex-farve, hvor 0 er sort)
Og det er jo de beskrevne parametre (x0, x1, y0 og y1), der angiver placeringen...
I createEmptyMovieClip skal det selvfølgelig hedder "Square" - ved ikke, om det gør en forskel...
kan se Square nu...men for det første er den over DragMovie og for det andet sker der ingenting når man smider DragMovie under Square :)
Jeg har prøvet at lave Square rigtigt nu...men det duer heller ik! Jeg tror det er dit DragMovie-script der ikke dur! :)
x0 = 100; y0 = 50; x1 = 200; y1 = 100; _root.createEmptyMovieClip("square",100); with(_root.Square) { beginFill(0,100); moveTo(_root.x0,_root.y0); lineTo(_root.x1,_root.y0); lineTo(_root.x1,_root.y1); lineTo(_root.x0,_root.y1); endFill(); } x0 = 0; y0 = 50; x1 = 10; y1 = 100; _root.createEmptyMovieClip("DragMovie",200); with(_root.DragMovie) { beginFill(0xFFFF00,50); moveTo(_root.x0,_root.y0); lineTo(_root.x1,_root.y0); lineTo(_root.x1,_root.y1); lineTo(_root.x0,_root.y1); endFill(); } DragMovie.dragged = 0; DragMovie.onPress = function() { this.startDrag(); this.dragged = 1; } DragMovie.onRelease = function() { this.stopDrag(); if (this.dragged && this.hitTest(_root.Square)) { trace("I'm dropped in the right place..."); _root.nextScene(); } this.dragged = 0; } Virker på min computer... prøv selv... Den laver både drop-felt og det, som skal trækkes (DragMovie), som er gul...
Så du skal jo ikke scripte din DragMovie men blot hæve den til et højere lag med en: DragMovie.swapDepths(20);
hehe det dur!!! ...men! DragMovie og Square er der stadig i scene2! :)
Har du prøvet at sætte en label i scene 3? I stedet for _root.nextScene(); skiver du _root.gotoAndPlay("dinLabelPåScene3"); /per
Yup... de bliver jo loaded op i et andet lag... disse lag skal unloades... som i: DragMovie.onRelease = function() { this.stopDrag(); if (this.dragged && this.hitTest(_root.Square)) { unoadMovieNum(10); unoadMovieNum(20); _root.nextScene(); } this.dragged = 0; } Hvis du altså swap'ede DragMovie op i level 20...
kom bare med svar barklund jeg bider ikke :) ...Grr!
Du knurrer bare eller..(?) Virker det så?
Jeg takker... vi ses i "slider" :o)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.