Avatar billede donslund Nybegynder
25. januar 2006 - 12:46 Der er 14 kommentarer og
1 løsning

Gør noget når musen er over

Jeg har et mc der fylder hele min movie. Der skal ske noget når musen er over. Det kan jeg også sagtens få den til, men når jeg har publiceret min movie stopper den ikke når jeg kører musen udenfor movien.
Avatar billede barklund Nybegynder
25. januar 2006 - 12:51 #1
Avatar billede donslund Nybegynder
25. januar 2006 - 13:02 #2
Tak, men den stopper ikke når jeg kører ud. Smider lige min kode.

onClipEvent (enterFrame) {
    var w = Stage.width;
var h = Stage.height;
var k = new Array();
function detectOnMouseMove() {
    // nu er den indenfor
    delete onMouseMove;
    onEnterFrame = testOnEnterFrame;
}
onMouseMove = detectOnMouseMove;
function testOnEnterFrame() {
    var p1 = k.shift();
    var p2 = k[0];
    var df = {x:p2.x + (p2.x - p1.x), y:p2.y + (p2.y - p1.y)};
    var p3 = {x:_xmouse, y:_ymouse};
    var udenfor = df.x < 0 || df.x > w || df.y < 0 || df.y > h;
    var koord_udenfor = p3.x < 0 || p3.x > w || p3.y < 0 || p3.y > h;
    var stille = p2.x == p3.x && p2.y == p3.y;
    if (koord_udenfor || (udenfor && stille)) {
        // nu er den udenfor
        trace("udenfor");
        delete onEnterFrame;
        onMouseMove = detectOnMouseMove;
    } else {
        if(antal > 50){
            myNumber = random(2);
            if(myNumber > 0){
                flyt = 0.5;
                antal=0;
            } else {
                flyt = -0.5;
                antal=0;
            }
        }
        _root.streger_top._x = _root.streger_top._x + flyt;
        _root.streger_bund._x = _root.streger_bund._x + (flyt/2);
        antal++;
        k.push(p3);
    }
}

}
Avatar billede barklund Nybegynder
25. januar 2006 - 13:04 #3
Har du lagt hele scriptet i en enterframe? det skal ligge på en frame og hvad er alt det for noget, du har smidt ind i den? :)
Avatar billede donslund Nybegynder
25. januar 2006 - 13:06 #4
Det er det der skal ske når man er inde i stagen :-)


Okay, så din kode i en frame og så må der skal ske onge i en EnterFrame et eller andet sted.
Avatar billede barklund Nybegynder
25. januar 2006 - 13:08 #5
Koden laver en enterframe - kig på den :) og kig på de to kommentarer, som jeg har lagt - dér og kun dér skal du indsætte noget - ikke andre steder :)
Avatar billede donslund Nybegynder
25. januar 2006 - 13:12 #6
Yes yes, nu forstår jeg. Og det virker. Dog stopper den når man holder musen stille.
Avatar billede donslund Nybegynder
25. januar 2006 - 13:52 #7
Hm. Det kan jeg ikke genbnemskue. Kan den ikke virke blot musen er inde over området? Så den også virker hvis man holder musen stille?
Avatar billede barklund Nybegynder
25. januar 2006 - 13:53 #8
Hm... burde den ikke...
Avatar billede donslund Nybegynder
25. januar 2006 - 14:03 #9
var antal = 51;
var w = Stage.width;
var h = Stage.height;
var k = new Array();
function detectOnMouseMove() {
    // nu er den indenfor
    if(antal > 50){
            myNumber = random(2);
            if(myNumber > 0){
                flyt = 0.5;
                antal=0;
            } else {
                flyt = -0.5;
                antal=0;
            }
        }
        _root.streger_top._x = _root.streger_top._x + flyt;
        _root.streger_bund._x = _root.streger_bund._x + (flyt/2);
        antal++;
    delete onMouseMove;
    onEnterFrame = testOnEnterFrame;
}
onMouseMove = detectOnMouseMove;
function testOnEnterFrame() {
    var p1 = k.shift();
    var p2 = k[0];
    var df = {x:p2.x + (p2.x - p1.x), y:p2.y + (p2.y - p1.y)};
    var p3 = {x:_xmouse, y:_ymouse};
    var udenfor = df.x < 0 || df.x > w || df.y < 0 || df.y > h;
    var koord_udenfor = p3.x < 0 || p3.x > w || p3.y < 0 || p3.y > h;
    var stille = p2.x == p3.x && p2.y == p3.y;
    if (koord_udenfor || (udenfor && stille)) {
        // nu er den udenfor
        delete onEnterFrame;
        onMouseMove = detectOnMouseMove;
    } else {
        k.push(p3);
    }
}
Avatar billede barklund Nybegynder
25. januar 2006 - 14:21 #10
Nejnej, det er jo helt forkert. Vil du have den til at gøre noget fortløbende, skal du jo sætte det igang, når den er over, og stoppe det, når den er udenfor. Ikke gøre det en gang, når den er over...
Avatar billede donslund Nybegynder
26. januar 2006 - 08:33 #11
Jeg forsøger at forstå det.

Nu gør jeg sådan:

var w = Stage.width;
var h = Stage.height;
var k = new Array();
function detectOnMouseMove() {
    // nu er den indenfor
    _root.streger_bund.active = true;
    delete onMouseMove;
    onEnterFrame = testOnEnterFrame;
}
onMouseMove = detectOnMouseMove;
function testOnEnterFrame() {
    var p1 = k.shift();
    var p2 = k[0];
    var df = {x:p2.x + (p2.x - p1.x), y:p2.y + (p2.y - p1.y)};
    var p3 = {x:_xmouse, y:_ymouse};
    var udenfor = df.x < 0 || df.x > w || df.y < 0 || df.y > h;
    var koord_udenfor = p3.x < 0 || p3.x > w || p3.y < 0 || p3.y > h;
    var stille = p2.x == p3.x && p2.y == p3.y;
    if (koord_udenfor || (udenfor && stille)) {
        // nu er den udenfor
        _root.streger_bund.active = false;
        delete onEnterFrame;
        onMouseMove = detectOnMouseMove;
    } else {
        k.push(p3);
    }
}

Og i mit mc der skal gøre noget tester jeg om hvor vidt active er true eller false. Men den sættes jop stadig til False hvis jeg holder musen stille i på stagen.


På mit mc:

onClipEvent (load) {
    var antal = 51;
    active = false;
}

onClipEvent (enterFrame) {
    trace(active);
    if(active == true){
    if(antal > 50){
            myNumber = random(2);
            if(myNumber > 0){
                flyt = 0.5;
                antal=0;
            } else {
                flyt = -0.5;
                antal=0;
            }
        }
        this._x = this._x + (flyt/2);
        antal++;       
    }
}
Avatar billede donslund Nybegynder
30. januar 2006 - 11:25 #12
Tja, denne spøger stadig.

Den starter fint når jeg kører musen over, men når jeg kører ud igen stopper den ikke.

_root.streger_bund.active = false; bliver simpelthen ikke kørt hvis jeg kører ud af filmen i en browser.
Avatar billede donslund Nybegynder
31. januar 2006 - 08:16 #13
Det er okay. Jeg lukker og finder en anden løsning
Avatar billede donslund Nybegynder
31. januar 2006 - 10:26 #14
Smid lige et svar Barklund. Jeg er slet ikke i tvivl om, at din kode virker hvis man bruger den rigtigt. Pointene er dine.
Avatar billede barklund Nybegynder
31. januar 2006 - 10:50 #15
Det er okay - jeg kan jo ikke lige overskue at tilpasse den dine ønsker anyways :)
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