Avatar billede marrix Juniormester
26. april 2003 - 08:13 Der er 7 kommentarer og
1 løsning

Min sprite forsvinder...?

Davs

Jeg pusler lidt med et mindre director projekt, hvor jeg er løbet ind i et temmelig irriterende - og for mig uforståeligt - problem.

Jeg vil gerne have nogle dynamiske sprites, der placerer sig på stage i det antal, som der er castmembers i et bestemt cast, men så langt er jeg ikke bare slet ikke nået endnu. Forsøgsmæssigt har jeg arbejdet med at kalde bare en enkelt sprite (castmember) frem på stage med følgende kode:

  sprite(2).member = member("abe").number

Dette virker også lige første gang - castmemberet med navnet "abe" bliver placeret på stage, men første gang playhead looper tilbage til frame 1, forsvinder indholdet af sprite 2 igen - og scenen er tom. ??????

Jeg har forsøgt at lægge koden i et movie script (både on prepareMovie og startMovie), men den første virker slet ikke, og den anden virker kun som beskrevet herover. Så har jeg forsøgt at oprette koden som en behavior på den første frame (on enterFrame....), men her forsvinder indholdet også, men efterlader dog et nydeligt hvidt felt, hvor der burde være en castmember (som om spriten stadig er reserveret, men indholdet mangler). Smadder irriterende.

Problemet forsvinder helt hvis jeg placerer en eller anden castmember fast i sprite(2) - altså ved at trække et member fra castet ind på stage, så spriten ikke er tom, når filmen starter. Herefter fungerer koden bare som når en sprite skal udskiftes med et andet member, og kører upåklageligt. Men det du'r ikke som løsning lige i mit tilfælde, for jeg kan ikke på forhånd vide, hvor mange castmembers der skal placeres på stage. Det må da for p..... være muligt at placere et castmember i en tom sprite via Lingo??

Det er som at koden her skal ligge et helt andet sted end on startMovie/on enterFrame, eller som om jeg mangler et eller andet der reserverer spritsene inden jeg med Lingo forsøger at proppe et castmember i den tomme sprite???

Gode og simple forslag efterlyses - men absolut helst forslag, der ikke laver alt for meget om på min oprindelige tanke. ;)

De venligste hilsener
Marianne
Avatar billede jmc Nybegynder
26. april 2003 - 10:13 #1
sætter du sprite(2).member på andre måder et andet sted?
Avatar billede marrix Juniormester
26. april 2003 - 11:37 #2
Nøøøøh, det tror jeg da ikke. Mit stage er stort set tomt, bortset fra en enkelt udfyldt sprite (nr. 5 - her har jeg hentet castmember "hest" ind på "normal" vis ved at trække det ind på stage) og så et loop i behavior channel.

I øvrigt er de castmembers jeg har forsøgt at hente ind på ovenstående måde både bitmaps og tekst. Teksten opfører sig lidt anerledes hvis jeg sætter kryds i DTS (direct to stage) under properties for castmembers, men det er lidt svært at forklare...
Avatar billede kanding Nybegynder
26. april 2003 - 11:43 #3
Hvis du dynamisk skal placere sprites på stage så skal du via lingo sætte de properties der mangler.

sprite(1).puppet = true -- denne sprites styres nu af lingo, ikke director
sprite(1).member = member("abe").number
sprite(1).ink = 36
sprite(1).locH = 100 -- placering horisontalt
sprite(1).locV = 100  -- placering vertikalt

osv..
Avatar billede marrix Juniormester
26. april 2003 - 14:31 #4
Okay....den der med placeringen har jeg med, men har i stedet brugt:

sprite(1).loc = point(100, 100)

Det fungerer fint - men hvad er forskellen på din og min version af det der med placeringen?

Den med ink er vist noget med background transparent - hmmmmm, ok!

Men det andet - det med puppet - det må jeg straks prøve. Jeg troede at puppet kun var noget med lyd (puppetsound) - men...?!? Vender snartligt tilbage igen.

Marianne
Avatar billede marrix Juniormester
26. april 2003 - 14:48 #5
Hurraaa, og tak for hjælpen. Puppet....det var det der skulle til. Sikke dog en fornøjelse.. :))

Nu bliver det hele pænt på stage - uanset om jeg propper koden i en behavior på en frame (on enterFrame) eller i et moviescript (on playMovie) - tror jeg holder mig til moviescript-versionen.

Men hvis du får tid - kanding - må du gerne give mig din version af hvad "puppet" egentlig er for en størrelse.

...men øh, nu ville jeg jo gerne give dig - kanding igen - lidt point, så kan du ikke lige give mig et formelt svar i stedet for en kommentar? Så skal jeg rundhåndet overdænge dig med 60 velfortjente point.

Marianne
Avatar billede kanding Nybegynder
26. april 2003 - 19:46 #6
Puppet er en simpel kommado der fortæller director at DU styrer begivenhederne, trækker i snorerne(puppet on a string). Når du puppet'er en sprite, så overtager du kommandoen fra director/score'en

Det gælder også puppetsound, puppetTempo, osv...

-kanding
Avatar billede marrix Juniormester
26. april 2003 - 21:08 #7
Okay...tak for hjælpen.

Marianne
Avatar billede kanding Nybegynder
26. april 2003 - 22:48 #8
BTW, forskellen på locH og loc er kun 2 forskellige måder at arbejde med de properties på.

sprite(1).locH = 12
sprite(1).locV = 74
er det samme som
sprite(1).loc = point(12, 74)

Da loc behandles af Director som en liste, kan man også udtrkke værdierne med:
put sprite(1).loc[1]
men du kan ikke sætte dem med denne måde.

kanding
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
Kurser inden for grundlæggende programmering

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