Avatar billede paask Nybegynder
24. oktober 2001 - 15:59 Der er 35 kommentarer og
1 løsning

startDrag

Er det muligt at kunne definere et startDrag i rhombe-form frem for firkantet? Normalt definerer man left, top, right, bottom, i normal firkantet form. Men, er det muligt at \'dreje\' eller \'skewe\' det definerede dragable område således <> fremfor [] ?

mvh
paask
Avatar billede lingoman Nybegynder
24. oktober 2001 - 16:08 #1
Det kan du godt men du bliver nød til at benytte mc.hitTest(root._xmouse,root._ymouse, true) i stedet for startDrag()
mvh geo
Avatar billede lingoman Nybegynder
24. oktober 2001 - 16:09 #2
root >> _root
Avatar billede paask Nybegynder
24. oktober 2001 - 16:10 #3
Ah, se det var da en idé... ser lige på det :0)
Avatar billede paask Nybegynder
24. oktober 2001 - 16:25 #4
Hmmm virker ikke lige for mig, hvordan definerer du området efter hitTesten?
Avatar billede lingoman Nybegynder
24. oktober 2001 - 16:42 #5
Det er kun den synlige del af din rhombe MC der tjekkes for hit og den er så ligeglad med rammen

Hvad er din StartDrag action? Jeg kan jo modificere det for dig
Avatar billede paask Nybegynder
24. oktober 2001 - 16:50 #6
Oki, jeg har en ganske normal on(press) startDrag action som denne:

on (press) {
    startDrag (this, true, 125, 186, 700, 490);
    _root.kvindeFace.gotoAndStop(\"dragSur\");
    this.stop ();
    _root.controller.gotoAndStop (4);
}

Med lidt extra stuff i. Jeg vil nu definere området der skal kunne dragges i som MC\'et _root.gulvet. Cool hvis du gider modificere det, eller bare forklare nærmere... :0)
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:00 #7
onClipEvent(enterFrame) {
_root.dragOK = _root.gulvet.hitTest(_root._xmouse,_root._ymouse, true) ;
}

Denne kode sættes på hvilken som helst MC (evt _root.gulvet)

Modificer din (press)

                    on (press) {
                        if (_root.dragOK) {
                              _root.kvindeFace.gotoAndStop(\"dragSur\");
                              this.stop ();
                              _root.controller.gotoAndStop (4);
                          }
                      }
mvh geo
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:02 #8
Vent lige et øjeblik!!!
Avatar billede paask Nybegynder
24. oktober 2001 - 17:02 #9
oki :0)
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:02 #10
Hvilken MC skal dragges ?
Avatar billede paask Nybegynder
24. oktober 2001 - 17:04 #11
_root.kvinden

Renser mus imens ;0)
Avatar billede gotcha Nybegynder
24. oktober 2001 - 17:14 #12
Du kan enten lave et movie clip, der har form som en rhombe og så bruge hitTest med shapeflag sat til true for at bestemme, om der må trækkes i det.

Den anden mulighed er i dit tilfælde at bestemme en forskrift for de skrå linjer. Du kender så værdien af y, som du så kan bruge til at beregne x, hvis du trækker det for langt (det er dog en noget mere matematisk løsning).

Mvh Morten
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:18 #13
_root.kvinden eller _root.kvindeFace ?

Jeg går i alle fald ud fra at det er hende vi skal trykke på og startDrag() hvis _root.gulvet.hitTest(_root._xmouse,_root._ymouse, true)

Derfor behøver du kun denne action på MC \"kvinde\"



                      onClipEvent(enterFrame) {
                      _root.dragOK = _root.gulvet.hitTest(_root._xmouse,_root._ymouse, true) ;

                      if (_root.dragOK) {
                        this._x = _root._xmouse;
                        this._y = _root._ymouse;

                          _root.kvindeFace.gotoAndStop(\"dragSur\");
                          this.stop ();
                          _root.controller.gotoAndStop (4);
                        }
                      }
Avatar billede paask Nybegynder
24. oktober 2001 - 17:23 #14
-> gotcha, fin idé med forskriften, men nu er jeg så fint igang med lingomans ;0)

-> geo, det er _root.kvinden der skal dragges, kvindeFace er et helt andet MC du sagtens kan se bort fra, det samme med controller MC\'et. De er afhængige af mange andre ting, og i dette tilfælde skal de bare med som vi har gjort.

Med det sidste eksempel, så bliver dragOK jo true hver gang curseren er over _root.gulvet, og derfor sragger man jo kvinden hele tiden, right?

Det kan vi jo ikke ha\' - man skal kun irritere hende ved at dragge hende en gang i mellem ;0)
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:26 #15
lidt mere uddybet...

on (press) {
    _root.drag = true;
}

on (release) {
    _root.drag =false;
}


                      onClipEvent(enterFrame) {
                                            _root.dragOK = _root.gulvet.hitTest(_root._xmouse,_root._ymouse, true) ;

                                            if (_root.dragOK && _root.drag) {
                                              this._x = _root._xmouse;
                                              this._y = _root._ymouse;

                                                _root.kvindeFace.gotoAndStop(\"dragSur\");
                                                this.stop ();
                                                _root.controller.gotoAndStop (4);
                                              }
                                            }

Så kan man kun dragge i mens musen er nede
mvh geo
Avatar billede paask Nybegynder
24. oktober 2001 - 17:33 #16
Det må være meget tæt på, nu looper kvinden MC\'et men controllerclippet stopper hele tiden i frame 4, selvom de 2 statements ikke er opfyldt. Det er strange, men jeg roder lidt videre med det...
Avatar billede gotcha Nybegynder
24. oktober 2001 - 17:34 #17
Fint nok, så gør det bare på den måde :)

Mvh Morten
Avatar billede paask Nybegynder
24. oktober 2001 - 17:34 #18
Oki, ellers takker :0)
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:36 #19
Du vil kun have


                    _root.kvindeFace.gotoAndStop(\"dragSur\");
                    this.stop ();
                    _root.controller.gotoAndStop (4);
bliver udført 1 gang, eller.... ?
Avatar billede paask Nybegynder
24. oktober 2001 - 17:38 #20
Det skal udføres hver gang kvinden MC\'et bliver dragget, når der ikke længere dragges udføres

    _root.kvindeFace.prevFrame();
    this.play ();
    _root.controller.gotoAndPlay (1);
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:41 #21
Så prøver vi lige at tilføje det på kvinde-knappen

                    on (release) {
                          _root.drag =false;
                          _root.kvindeFace.prevFrame();
                          this.play ();
                          _root.controller.gotoAndPlay (1);
                      }
Avatar billede paask Nybegynder
24. oktober 2001 - 17:43 #22
Yes, har lige gjort netop det, alt det andet stuff ( _root.kvindeFace.prevFrame();
- this.play (); - _root.controller.gotoAndPlay (1); - etc.) fungerer nu fino, satte det bare på knappen istedet for MC\'et.

Men, this._x = _root._xmouse; og this._y = _root._ymouse; - bliver kun udført én gang, der dragges stadig ikke!!?!
                                             
Avatar billede lingoman Nybegynder
24. oktober 2001 - 17:52 #23
Den del skal være på kvindeMC

Så kan du jo nøjes med

onClipEvent(enterFrame) {
            _root.dragOK = _root.gulvet.hitTest(_root._xmouse,_root._ymouse, true) ;

              if (_root.dragOK && _root.drag) {
                        this._x = _root._xmouse;
                        this._y = _root._ymouse;

              }
}



on (release) {
          _root.drag =false;
          _root.kvindeFace.prevFrame();
          this.play ();
          _root.controller.gotoAndPlay (1);
}

on (press) {
    _root.drag = true;
    _root.kvindeFace.gotoAndStop(\"dragSur\");
      this.stop ();
      _root.controller.gotoAndStop (4);
}

Så skulle den være der :)
Avatar billede paask Nybegynder
24. oktober 2001 - 17:56 #24
Desværre ikke... det er præcist sådan min movie ser ud nu! Det virker som om at kvindens x og y værdier kun bliver sat til curserens én gang.

Desuden, har du ikke byttet om på true pg false på knapperne!?
Avatar billede paask Nybegynder
24. oktober 2001 - 18:00 #25
Nej, true/false er ok, min fejl.
Avatar billede lingoman Nybegynder
24. oktober 2001 - 18:04 #26
Kan det være fordi din kvinde MC ikke er en MC men kun en button ?
Avatar billede paask Nybegynder
24. oktober 2001 - 18:05 #27
Det er et MC med en usynlig knap og forskellige grafiske animationer (hun går rundt i et rum) der styres af controller clippet...
Avatar billede lingoman Nybegynder
24. oktober 2001 - 18:14 #28
Så kan jeg ikke forstå at det ikke virker

Prøv at sætte en trace(\"enterFrame\"); kommando i onClipEvent(enterFrame) så du kan tjekke om den bliver kaldt.
Avatar billede lingoman Nybegynder
24. oktober 2001 - 18:18 #29
Ellers er du velkommen til at sende filen til mig. geo@lingoman.dk
Vi holder fest resten af aftenen men jeg vender tilbage i morgen
mvh geo
Avatar billede paask Nybegynder
24. oktober 2001 - 18:20 #30
Ok, tusind tak for hjælpen, jeg ser bare selv videre på det... Du har i hvert fald fået mig på rette vej, og det skal nok lykkes.
Avatar billede paask Nybegynder
24. oktober 2001 - 19:26 #31
Hvor dum har jeg været!!! For h*** jeg hulker da af grin over min egen uduelighed. Det burde jo også virke, og det gør det også nu !!!!

Takker og ´bukker :0)
Avatar billede lingoman Nybegynder
24. oktober 2001 - 19:32 #32
hvad var problemet ?? Det gik mig for meget på at det ikke virkede før så jeg måtte lige tjekke ....
Avatar billede paask Nybegynder
24. oktober 2001 - 19:34 #33
Gulvet... MC\'et gulv (der har alpha 0) troede jeg lå i et lag jeg havde låst. Det havde jeg ikke.... næh nej det lå i et lag jeg havde slettet. Dvs. intet gulv på stage, ingen kvinde at dragge.... me dum ;0)
Avatar billede paask Nybegynder
25. oktober 2001 - 10:55 #34
-> lingoman... Det endte med jeg ikke brugte denne løsning, ikke helt som vi snakkede om i hvert fald. problemet var at hitTesten brugte hele gulvets \'bounding box\' - ikke kun grafikken. Derfor satte jeg et usynligt MC i et lag under kvindens hovede med AC:
onClipEvent (enterFrame) {
        this._x = _root.kvinden._x;
        this._y = _root.kvinden._y;
   
        if ((_root.gulvet.hitTest(this._x , this._y , true)) == false) {
        _root.controller.gotoAndPlay(1);
    }
}

Derudover rykkede jeg \'gulvet\' længere op end gulvet (så det passede hovede/fødder).

Men, hitTesten var i sig selv altså ikke nok, der skulle bruges x og y værdier. Og nu virker det hele perfekt, på trods af min uduelighed igår ;0)
Avatar billede lingoman Nybegynder
25. oktober 2001 - 14:54 #35
Nu fatter jeg absolut ikke en brik!!! men du har jo selv fået det til at virke, så jeg vil ikke brokke mig :)
Avatar billede paask Nybegynder
25. oktober 2001 - 19:57 #36
Hehe, ja det virker og det er hvad der tæller. Men en !hovsa! løsning var det!
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