Avatar billede fiil123 Nybegynder
07. februar 2005 - 13:19 Der er 10 kommentarer og
1 løsning

Drag Problemer - Knappen virker ikke, når der er "drag" på

Hey champ', så er der igen problemer her fra...
Jeg har en lille drop down menu der skal kunne drages rundt i min flash... jeg har smidt denne kode på mit MC:

onClipEvent (enterFrame) {
    if (drag) {
        _x = _root._xmouse;
        _y = _root._ymouse;
    }
}

on (press) {
    if (hitTest(_root._xmouse, _root._ymouse, false)) {
        drag = true;
    }
}

on (release) {
    drag = false
    }
   
on (releaseOutside) {
    drag = false
    _x = 200;
    _y = 200;
}

Det virker også fint menuen kan dragges men nu virker knappen der skal få den til at "rulle" ned ikke mere... man kan ligesom ikke "ramme" den...
Filen ligger her:
http://www.dwankers.dk/flash/2.rar
Avatar billede docks Nybegynder
07. februar 2005 - 13:39 #1
hmm

der er den mulighed at du tilføjer

on (release) {
    drag = false
    openMenuKode her??
    }

Men kan godt se at det ville være uhænsigstmæssigt.

Måske lave en funktion der tjekker hvor længe du har haft musen nede? Hvis det er i kort tid så åbnes menuen hvis ikke så udføres drag?
Avatar billede rohaje Nybegynder
07. februar 2005 - 15:28 #2
onClipEvent (enterFrame) {
    if (drag) {
        _x = _root._xmouse;
        _y = _root._ymouse;
    }
}

on (press) {
    if (dragFelt.hitTest(_root._xmouse, _root._ymouse, false)) {
        drag = true;
    }
}

on (release) {
    drag = false
    }
   
on (releaseOutside) {
    drag = false
    _x = 200;
    _y = 200;
}
Avatar billede rohaje Nybegynder
07. februar 2005 - 15:29 #3
lav et skjult mc med instance navn dragFelt i dit mc der indikere drag feltet,, knappen til at åbne med lægges så over (layer eller depth) ,, vil det iikke virke ?
Avatar billede fiil123 Nybegynder
08. februar 2005 - 08:48 #4
Nu har jeg gjort næsten det som du sagde, jeg har lavet et skjult mc over den og ladet knap "delen" være fri så nu kan man sagtens trykke på knappen... meeen den virker stadig ikke, ligeså snart jeg sletter drag koden virker knappen fint igen...
Avatar billede rohaje Nybegynder
08. februar 2005 - 23:03 #5
Det er dit on(prees der forvandler hele dit movieClip til en stor knap:

her er et forslag der skulle løse det samt lidt ekstra:

screenW=800;
screenH=600;
dragFelt.onPress=moveWindow;
dragFelt.onRelease=dragFelt.onReleaseOutside=stopTheDrag;
function moveWindow(){
    //sætter en offset for y og y så clippet ikke springer
    xoff=_xmouse;
    yoff=_ymouse;
    // sætter en old- position til at resætte med istedet 200,200
    oldX=_x;
    oldY=_y;
    // pådutter først en enterFrame bår der er brug for den
    onEnterFrame=doTheDrag;
}
function doTheDrag(){
    _x = _root._xmouse-xoff;
    _y = _root._ymouse-yoff;
}
function stopTheDrag(){
    // tester om clippet er uden for skærmen
    if(_x>screenW || _x<0 || _y>screenH || _y<0){
        _x=oldX;
        _y=oldY;
    }
    // ryder lige op så der ikke køre en onEnterFrame til ingen vedens nytte
    onEnterFrame=false;
}
Avatar billede rohaje Nybegynder
08. februar 2005 - 23:36 #6
bare lige for en -

- hvis koden skal ligge på clippet skal det hele lige pakkes i en

onClipEvent(load){
//her er koden :)
}

- eller i første frame af dit movieClip,
Avatar billede fiil123 Nybegynder
09. februar 2005 - 08:15 #7
Damn det virker jo intet mindre en PERFEKT! Takker for det, det løser også nogle små problemer som jeg havde lært at leve med:0)! Smid et svar så du kan få dine point!
Avatar billede rohaje Nybegynder
09. februar 2005 - 09:24 #8
et svar :)
Avatar billede rohaje Nybegynder
09. februar 2005 - 09:24 #9
´prøver igen
Avatar billede rohaje Nybegynder
09. februar 2005 - 10:02 #10
tak for point

lige den her der tester om menuen er uden for skærmen og bare flytter det ind på skærmen relativt fra hvor det er sluppet

oldX og oldY kan i så flad droppes

function stopTheDrag() {
    // tester om clippet er uden for skærmen
    if (_x+_width>screenW) {
        _x = screenW-_width;
    } else if (_x<0) {
        _x = 0;
    }
    if (_y+_height>screenH) {
        _y = screenH-_height;
    } else if (_y<0) {
        _y = 0;
    }
    delete this._parent.onEnterFrame;
}
Avatar billede rohaje Nybegynder
09. februar 2005 - 10:03 #11
function stopTheDrag() {
    // tester om clippet er uden for skærmen
    if (_x+_width>screenW) {
        _x = screenW-_width;
    } else if (_x<0) {
        _x = 0;
    }
    if (_y+_height>screenH) {
        _y = screenH-_height;
    } else if (_y<0) {
        _y = 0;
    }
// sådan-her selvfølgelig
    delete onEnterFrame;
}
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