Avatar billede nanna31 Praktikant
16. marts 2002 - 16:48 Der er 4 kommentarer og
1 løsning

Basale virkefelter

Kan det pasee, at en knap og et movieclip har  forskelligt udsyn ? -

På min tidslinie har jeg  et objekt, som skal manipuleres - jeg kan gøre det ved tryk på en knap (on press) som ligger på samme tislinie og som (derfor?) kender navnet på objektet. Jeg kan også gøre det med et movieclip (onClipEvent(enterFrame)), som ligger på samme tidslinie som både knappen og objektet, men dette clip kan kun se objektet via deres fælles parent ?? - er det ikke mystisk ?

Er der nogen forskel på at skrive x eller this.x ?
Avatar billede nanna31 Praktikant
16. marts 2002 - 16:51 #1
Kan en knap indeholde variable ?
Avatar billede paask Nybegynder
17. marts 2002 - 18:50 #2
Du skal tænke objekt orienteret programmering for at se sammenhængen. Hvert movieclip er et objekt, et af dets egenskaber er, at det har en timeline. Hvert movieclip har derfor en timeline, alle knapper og objekter der ellers er i denne timeline kan påvirkes ved at henvise netop til det pågældende movieclips timeline. Uden anden angivelse så påvirker du det objekt der tilhører det pågældende movieclips egen timeline. Uden at skrive det benyttes keyword'et 'this' altså på den måde...

Hvis du derfor har en knap i et movieclip med denne action:

on (press) {
mitObjekt._x += 10;
}

Så refererer du til det movieclip knappen befinder sig i, altså direkte til det objekt hvori du har placeret knappen. Hvis du i samme timeline har et andet movieclip, så er det et objekt for sig selv (det er knapperne dog også). Det nye movieclip er derfor et child til det clip hvori det er placeret. Hvis du så skriver dette på det nye clip:

onClipEvent(enterFrame){
mitObjekt._x +=1;
}

Så refererer du til et objekt ved navn mitObjekt der befinder sig i det nye clips timeline. Derfor vil der intet ske...

Hvis du derimod vil påvirke mitObjekt der er placeret i det første clip, altså hvori du både har en knap, dette nye MC og objektet, så skal du angive det gennem _parent. Dermed angiver du hvilket objekt/movieclip og dermed timeline der skal påvirkes.

Så du har ret i dette "...en knap (on press) som ligger på samme tidslinie og som (derfor?) kender navnet på objektet." Det er præcist derfor, knappen ligger i samme timeline som objektet, og refererer derfor til objektet.

"...dette clip kan kun se objektet via deres fælles parent ??" Det er så netop fordi, at du ellers vil angive en action til selve clippet hvorpå du skriver koden. Ved brug af _parent (eller _root.minEneMovie.EnAndenMovie.Etc) styrer du hvilket objekt, og hvilke objekter, parametre o.lig. i dette, du vil påvirke.

Hvis du derfor skriver mitObjekt._x så er det en henvisning til objektet i samme timeline, hvis du skriver this._x vil du referere til netop det objekt hvorpå koden er sat.

Håber det gav lidt forklaring :0)
Avatar billede paask Nybegynder
17. marts 2002 - 18:53 #3
"Kan en knap indeholde variable ?" <- Hvordan mener du præcist? Knapperne kan i sig selv ikke indeholde noget, de er udelukkende med til at styre events o.lign. Du kan godt skabe nye variabler med knapper - hvis variablen ikke allerede findes vil den blive skabt - men det er nok ikke det du mener.

Til at gemme variabler, så er en knap ikke en udvej, men et movieclip til samme formål er vel helt fint...
Avatar billede nanna31 Praktikant
17. marts 2002 - 21:41 #4
Tak for det grundige svar :)
Avatar billede paask Nybegynder
17. marts 2002 - 22:02 #5
Det var så lidt :0)
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