Avatar billede camban Nybegynder
22. december 2005 - 10:25 Der er 9 kommentarer og
1 løsning

mousedown + hittest

Jeg har lavet en follow mouse:
onClipEvent (enterFrame) {
    this._x += (_root._xmouse-this._x)/5;
    this._y += (_root._ymouse-this._y)/5;
}

og skal nu have ved mousedown at gå til frame 2 i roden...jeg har forsøgt med at lægge en knap i mouse_mc men uden held.

Desuden skal jeg have lave en hittest så musen ikke kan gå ud over rammens kant.

Håber der er en der kan hjælpe!
Avatar billede apache999 Nybegynder
22. december 2005 - 11:01 #1
Hep.

Har ændret lidt i din kode, så den bruger events & Delegates i stedet for det dersens kode direkte på movieclippet. ditClip_mc er det movieclip, der skal fløjte rundt.

Funktionaliteten for hittestesten kan du passende lægge ind i mouseOnMove-funktionen, men den har jeg altså ikke lavet. Koden er oven i købet testet (lidt løst i det). Det er for resten AS 2.0, så jeg håber, du kan bruge det.

-----
stop();

import mx.utils.Delegate;

var thisRoot:MovieClip = this;

var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);

mouseListener.onMouseDown = mx.utils.Delegate.create(thisRoot,mouseOnDown);
mouseListener.onMouseMove = mx.utils.Delegate.create(thisRoot,mouseOnMove);

function mouseOnMove():Void {
    ditClip_mc._x += (this._xmouse-ditClip_mc._x)/5;
    ditClip_mc._y += (this._ymouse-ditClip_mc._y)/5;
}

function mouseOnDown():Void {
    this.gotoAndPlay(2);
}
Avatar billede camban Nybegynder
22. december 2005 - 11:45 #2
Ok det virker fint, men når jeg er nået til frame 2 og jeg trykker på musen igen...kommer jeg til frame 1, kan jeg undgå det?
Avatar billede apache999 Nybegynder
22. december 2005 - 12:02 #3
Du kan redefinere mouseListener.onMouseDown til at gøre noget andet i frame 2.

Alternativt kan du lave denne lille ændring til mouseOnDown(), som jeg burde have lavet fra starten :D

function mouseOnDown():Void {
    this.gotoAndStop(2);
}
Avatar billede apache999 Nybegynder
22. december 2005 - 12:06 #4
Hvad er det for resten for en ramme, musen ikke må gå ud over. Er det Stage eller er det et movieclip af en eller anden art? Hvis jeg nu tilfældigvis skulle få lyst til at lave hittesten (Ja, vi har ikke så meget at lave i firmaet i dag her op til julen :-)
Avatar billede camban Nybegynder
22. december 2005 - 13:35 #5
Tusind tak. Det er stage jeg snakker om og jeg ville da bliver overordentlig glad hvis du fik trang til at begive dig ud i en hittest :o)
Avatar billede apache999 Nybegynder
22. december 2005 - 13:47 #6
havde faktisk lavet den til stage allerede, men skulle jo lige høre. Det er ret simpelt :D

En lille ændring til mouseOnMove & en ny funktion følger. Hvis du vil have "noget andet" til at ske, når musen når kanten, kan du passende indsætte det der, hvor jeg har kommenteret:

function mouseOnMove():Void {
    if(hitTest(this)) {
        ditClip_mc._x += (this._xmouse-ditClip_mc._x)/5;
        ditClip_mc._y += (this._ymouse-ditClip_mc._y)/5;
    } // else { et eller andet }
}


function hitTest(mc:MovieClip):Boolean {
    if(mc._xmouse < 0) {
        return false;
    }
    if(mc._ymouse < 0) {
        return false;
    }
   
    if(mc._xmouse > Stage.width) {
        return false;
    }
   
    if(mc._ymouse > Stage.height) {
        return false;
    }
   
    return true;
}
Avatar billede camban Nybegynder
22. december 2005 - 15:31 #7
Jeg kan ikke få hittesten til at virke til højre og ned...har prøvet at rette lidt til?
Avatar billede apache999 Nybegynder
22. december 2005 - 16:29 #8
Du er nok nødt til at involvere noget getBounds(), hvis du skal kontrollere det fuldstændig. getBounds er en smule kompliceret, men den laver et objekt med en masse oplysninger, du kan bruge til at stoppe bevægelsen. Slå det evt. op i referencen i Flash.

jeg har desværre ikke mere tid til at hjælpe nu, men held & lykke med det.
Avatar billede camban Nybegynder
22. december 2005 - 17:07 #9
Ok, jeg forsøger mig...tak for hjælpen - smid et svar
Avatar billede apache999 Nybegynder
22. december 2005 - 19:08 #10
svar
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