Avatar billede snigeren Nybegynder
22. juni 2003 - 14:31 Der er 23 kommentarer og
2 løsninger

stop action i MC

Hej

Jeg har lidt problemer med at lave en stop action i et MC here goes:

mit MC er en tween fra alpha 100 til 0 til 100 igen, på det MC har jeg en action der hedder:
on(rollOver){
  this.gotoAndPlay(1);
}

det jeg ikke helt kan regne ud er at lave en action der siger hvis musen stadig er på MC´et ved frame 10 i det MC så stop; ellers play;

hvordan kan jeg lave det ?

/snig
Avatar billede nikolajdu Nybegynder
22. juni 2003 - 14:39 #1
on(rollOver){
if(this.currentframe==10){
stop();
}else{
play();
}
}

sådan?
Avatar billede snigeren Nybegynder
22. juni 2003 - 14:43 #2
hmm nej ikke helt,.. den skal play når man kører over den (det gør den self oxo med det script) men den skal så stoppe når den når til frame 10 hvis musen stadig er over MC´et.
med det script siger den jo kun at den skal stoppe hvis den er på frame 10 idet man kører over MC´et.

det skal vel være et script inde i MC´et på frame 10 eller noget der siger hvis musen _stadig_ er over MC´et så stop, men jeg kan ikke lige regne det script ud =)
Avatar billede nikolajdu Nybegynder
22. juni 2003 - 14:50 #3
Så indsæt den her på selve movieclippet i stedet :

onClipEvent (enterFrame) {
    if (this.hitTest(_root._xmouse, _root._ymouse)) {
        if (this._currentframe == 10) {
            this.stop();
        } else {
            this.play();
        }
    }
}
Avatar billede snigeren Nybegynder
22. juni 2003 - 15:14 #4
nu virker det næsten =))
hvis man holder musen over MC´et til det når frame 10 og stopper går det ikke igang igen når man fjerne musen fra klippet =)
Avatar billede nikolajdu Nybegynder
22. juni 2003 - 15:49 #5
onClipEvent (enterFrame) {
    if (this.hitTest(_root._xmouse, _root._ymouse)) {
        if (this._currentframe == 10) {
            this.stop();
        } else {
            this.play();
        }
    }else{
this.play();
}
}
Avatar billede snigeren Nybegynder
22. juni 2003 - 16:08 #6
vi er der snart =))

nu player den bare hele tiden med mindre jeg har musen over =)

den skulle jo gerne kun play når jeg fører musen hen over mc´et
Avatar billede nikolajdu Nybegynder
22. juni 2003 - 16:56 #7
onClipEvent (enterFrame) {
    if (this.hitTest(_root._xmouse, _root._ymouse)) {
        if (this._currentframe == 10) {
            this.stop();
        } else {
            this.play();
        }
    }else{
this.stop();
}
}

lol...
Avatar billede lyden Nybegynder
22. juni 2003 - 17:03 #8
Tak for god søndags underholdning .O)


(undskyld forstyrelsen)
Avatar billede snigeren Nybegynder
22. juni 2003 - 17:06 #9
hehe,.. well,.. nu stopper vil den igen ikke gå igang når man flytter musen væk fra mc´et hvis den er nået til frame 10 og den er stoppet,...

kan man ikke lave en ny hittest på frame 10 i mc´et ?
Avatar billede snigeren Nybegynder
22. juni 2003 - 17:21 #10
du siger bare til hvis jeg skal smide flere point i bøtten,.. det ser ud til at være lidt sværrere end først forventet =|
Avatar billede barklund Nybegynder
22. juni 2003 - 17:47 #11
Eller bare:

on (rollOver) {
    this.gotoAndPlay(1);
    this.over = true;
}
on (rollOut) {
  this.play();
  this.over = false;
}

Og inde i movieclippet er der en "stop()" i første frame samt:

if (over) {
  stop();
}

i frame 10.

/Barklund
Avatar billede snigeren Nybegynder
22. juni 2003 - 18:40 #12
det ser ud til at barklunds løsning er bedst,.. bare for at gøre det hele mere besværligt... kan man så ikke på en eller anden måde skrive det script en gang i 1. frame og så bare linke det til de mc´s der skal bruges ?

Jeg har nemlige 72 mc´s der skal have samme script og det ser ud til at swf filen fylder mere jo flere linier script der er + at det bliver en del lettere at rette i det =)
Avatar billede snigeren Nybegynder
22. juni 2003 - 18:41 #13
jeg smider forresten lige lidt flere point på,.. =D
Avatar billede barklund Nybegynder
23. juni 2003 - 20:19 #14
Det der står i frame10, er jo nødt til at stå derinde... Ellers skal du have en enterFrame, hvilket vi ikke kan lide :)

rollOver kan du dog sagtens sætte dynamisk på samtlige movieclips (eller ved et for-loop):

rollOver = function() {
    this.gotoAndPlay(1);
    this.over = true;
}
rollOut = function() {
    this.play();
    this.over = false;
}
for (i in this) {
    if (typeof this[i] == "movieclip") {
        this[i].onRollOver = rollOver;
        this[i].onRollOut = rollOut;
    }
}

Eller hvis de er navngivet fortløbende som fx:

mc0
mc1
...

Så er det:

max = 72;
for (i = 0; i < max; i++) {
    this[i].onRollOver = rollOver;
    this[i].onRollOut = rollOut;
}
Avatar billede barklund Nybegynder
23. juni 2003 - 20:20 #15
Sidste script skulle selvfølgelig være:¨

max = 72;
for (i = 0; i < max; i++) {
    this["mc"+i].onRollOver = rollOver;
    this["mc"+i].onRollOut = rollOut;
}
Avatar billede snigeren Nybegynder
23. juni 2003 - 22:53 #16
nydeligt,... hvis i begge lige smidder et svar så får i lige halv point værd nikolajdu har jo brugt en masse tid på mig =)))
Avatar billede barklund Nybegynder
23. juni 2003 - 22:56 #17
k
Avatar billede nikolajdu Nybegynder
24. juni 2003 - 06:56 #18
lol så slemt vet det jo ikke...
Avatar billede snigeren Nybegynder
24. juni 2003 - 17:09 #19
hov for søren,.. den der:
for (i in this) {
    if (typeof this[i] == "movieclip") {
        this[i].onRollOver = rollOver;
        this[i].onRollOut = rollOut;
    }
}
virker ikke jeg brugte den nedeste men nu prøvede jeg lige denne, hvad er der galt der? jeg har sat instance på mc´et ind men det er ikke helt nok, der mangler et eller andet, den laver ikke fejl men der sker heller ikke noget når man kører musen henover.
Avatar billede barklund Nybegynder
24. juni 2003 - 18:53 #20
Det forstår jeg nu ikke... men tark for points :)
Avatar billede snigeren Nybegynder
26. juni 2003 - 10:39 #21
hehe,.. ey barkund, har du ikke lige lyst til at forklare hvad "i in this" gør helt præcis ?
og har du slet ingen idé til hvorfor det ikke virker? Mit mc hedder moerk_box skulle det så ikke bare være:

for (i in this) {
    if (typeof this[i] == "moerk_box") {
        this[i].onRollOver = rollOver;
        this[i].onRollOut = rollOut;
    }
}

eller hvordan ?
Avatar billede barklund Nybegynder
26. juni 2003 - 10:46 #22
Nej... typen af movieclips er "movieclip" - det andet er navnet... Så der skal stå "movieclip" istedet for "moerk_box"
Avatar billede snigeren Nybegynder
26. juni 2003 - 11:17 #23
hvordan får jeg den så til at ramme moerk_box ?
Avatar billede barklund Nybegynder
26. juni 2003 - 11:26 #24
Skriver det her:

for (i in this) {
    if (typeof this[i] == "movieclip") {
        this[i].onRollOver = rollOver;
        this[i].onRollOut = rollOut;
    }
}

Så kommer den på ALLE movieclips...

Skal den kun på moerk_box, så er det selvfølgelig bare:

moerk_box.onRollOver = rollOver;
moerk_box.onRollOut = rollOut;
Avatar billede snigeren Nybegynder
26. juni 2003 - 11:48 #25
hmm hvis jeg skriver kommer det kun på en af dem der 72 :)
moerk_box.onRollOver = rollOver;
moerk_box.onRollOut = rollOut;

men nu har jeg fjernet alle instance names på de mc´s og nu virker:
for (i in this) {
    if (typeof this[i] == "movieclip") {
        this[i].onRollOver = rollOver;
        this[i].onRollOut = rollOut;
    }
}

syntes bare jeg havde prøvet det, men åbenbart ikke. Men takker endnu en gang =)
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