Avatar billede relove Nybegynder
20. december 2004 - 14:42 Der er 6 kommentarer

Alternativ til StartDrag

Jeg laver et skydespil, men styrer et sigtekorn. Jeg har brugt startDrag(); hvilket fungere. Det er dog lidt hakkende, og så var det at jeg tænkte om der ikke var en anden måde som gjorde det lidt mere smooth?

Nogen foreslag?
Avatar billede thulstrup Nybegynder
20. december 2004 - 14:45 #1
sigtekort_mc.onMouseMove = function() {
    this._x = _xmouse;
    this._y = _ymouse;
    updateAfterEvent();
};
Avatar billede relove Nybegynder
20. december 2004 - 15:31 #2
Uh. Ja så ser det mere glidende ud...
Men... kan man afgrænse området?
Jeg kan forstille mig at man kan lave fire if sætninger hvor man skriver hvilke x,y, værdier det ikke må være, men der må da være en anden metode?
Avatar billede pyroman Nybegynder
20. december 2004 - 15:55 #3
Altså - startdrag er fin - bare sæt frameraten op - den skal i hvert fald op over 30!!

men ellers vil det se sådan her ud:

var xmax = 550, xmin = 0;
var ymax = 400, ymin = 0;
sigtekort_mc.onMouseMove = function() {
    if(_xmouse < xmax && _xmouse > xmin && _ymouse < ymax && _ymouse > ymin){
        this._x = _xmouse;
        this._y = _ymouse;
        updateAfterEvent();
    }
};
Avatar billede thulstrup Nybegynder
20. december 2004 - 16:01 #4
onMouseMove vil stadig blive mere flydende, fordi billedet bliver opdateret hver gang musen bevæges (p.g.a. updateAfterEvent()). startDrag vil "kun" blive opdateret hver onEnterFrame.
Avatar billede relove Nybegynder
20. december 2004 - 16:10 #5
dit script giver et problem. Hvis man bevæger musen hurtigt ud over skræmen stopper sigtekornet ikke ved slutningen af stagen, men lige før slutningen. Er det muligt at få den til at stoppe ved slutningen?
Avatar billede pyroman Nybegynder
20. december 2004 - 16:17 #6
Der er det at den ikke kan bruges - for ligeså snart at musen er udenfor flashen registreres det ikke når den bevæges - og man kan bevæge musen så hurtigt at mousemove ikke bliver kaldt... derfor må der alligevel være en onEnterFrame funktion der sætter positionen også, men du kan egentlig bare skrive det sådan her:

var xmax = 550, xmin = 0;
var ymax = 400, ymin = 0;
sigtekort_mc.onMouseMove = = sigtekorn_mc.onEnterFrame = function() {
    if(_xmouse < xmax && _xmouse > xmin && _ymouse < ymax && _ymouse > ymin){
        this._x = _xmouse;
        this._y = _ymouse;
        updateAfterEvent();
    }
};
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