Avatar billede xomtranz Nybegynder
11. april 2004 - 17:48 Der er 3 kommentarer og
1 løsning

Actionscript, vedrørende skygge på objecter.

Hej...
Jeg er ved at lave et lille spil i flash.
I det spil har jeg så nogle missiler, de missiler bliver lavet ved hjælp af "duplicateMovieClip", her har jeg kaldt mit første missil fjende1, den går så hen og laver en fjende2 fjende3 osv efter hvormange gange jeg har sat den til at duplikere movieclip'et.

Men jeg vil gerne have skygge på mine movieclips, og skyggens position er afhængig af hvor på banen mine missiler flyver. Derfor er der lagt en masse data ind i mit skygge movieclip.

Her kommer problemet så: Jeg vil gerne have min skygge på alle missilerne, uden jeg skal til at lave en kopi af hvert movieclip manuelt og sige den skal binde sig til den og det movieclip manuelt. Altså, den skal kunne oprette skyggerne automatisk efter hvormange movieclip der er.

Er der en måde man kan tjekke om et movieclip eksisterer?
Er der en måde jeg kan tjekke hvad endelsen er på mit skyggemovieclip? Endelsen bliver det samme som missil movieclip'et (missil1 = skygge1, missil2 = skygge2 osv.)

Hvis der er nogle som har en idé til hvordan jeg kan løse mit problem på ville det være fedt!

Mvh. Jesper Hauge
Avatar billede pyroman Nybegynder
12. april 2004 - 00:00 #1
Jep - det kan nemt ordnes ved at bruge funktioner:

function createNewMissile (num){
  fjende1.duplicateMovieClip("fjende"+num, num);
  skygge1.dublicateMovieClip("skygge"+num, num);
}

for(i=2;i<antalFjender;i++){
  createNewMissile(i);
}

Dette script skal nok ændres lidt for at passe til dit script og hvad det skal kunne...

Du kan altid lave dine egne klynger af kode er skal udføres, dette klares ved at lave det som en funktion, ligesom eksemplet herover... Rigtige actionscript-programmører kan ikke leve uden funktioner... ;)


Du kan tjekke om et movieclip eksisterer i en simpelt if-kode:

if(fjende3 == undefined) trace("fjende3 eksisterer");

eller bare:

if(fjende3) trace("fjende3 eksisterer");


...og du kan få endelsen af et movieclip's navn på denne måde:

endelse = movieclip._name.substring(længdeAfStammen, movieclip._name.length);

hvor "længdeAfStamme" er længden af hovedbestandelen af navnet, fx: i navnet "missil3", er stammen "missil" og lægnden af denne er 6....
Avatar billede xomtranz Nybegynder
12. april 2004 - 03:29 #2
Tak for hjælpen, jeg fandt en løsning ved at bruge metoden med substring...
Jeg tror du skal lave et indlæg som svar før jeg kan give dig point.
Avatar billede pyroman Nybegynder
12. april 2004 - 13:18 #3
Jep - jeg skal lægge et svar først... men som regel smider vi bare en kommentar først her på eksperten... :)
Avatar billede xomtranz Nybegynder
12. april 2004 - 16:30 #4
Okay, så ved jeg det.
Tak for hjælpen!
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