Avatar billede kalleballe Nybegynder
07. januar 2005 - 10:00 Der er 22 kommentarer og
1 løsning

lave mc ud fra png i bibliotek med actionscript

jeg har f.eks. 200 png filer i mit bibliotek.

Jeg vil så gerne skrive en stump kode der kan lave hver png om til et mc.

Jeg kan ikke komme til at sætte linkage ID på png'erne så hvordan kan jeg komme i kontakt med dem?


Vh
KalleBalle
Avatar billede barklund Nybegynder
07. januar 2005 - 10:05 #1
Bruger du Flash MX 2004?
Avatar billede barklund Nybegynder
07. januar 2005 - 10:40 #2
Okay, nu har jeg alligevel lavet et JSFL script til det:

var l = fl.getDocumentDOM().library;
var imgs = l.getSelectedItems();
if (imgs.length == 0 || imgs[0].itemType != "folder") {
    alert("vælg en folder med billeder i");
} else {
    var f = imgs[0].name+" MovieClips";
    l.addNewItem("folder",f);
    var i, n;
    for (i = 1; i < imgs.length; i++) {
        if (imgs[i].itemType == "bitmap") {
            n = imgs[i].name.substring(imgs[i].name.lastIndexOf("/")+1);
            l.addNewItem("movieclip", f+"/"+n);
            l.editItem(f+"/"+n);
            l.addItemToDocument({x:0,y:0}, imgs[i].name);
            l.selectItem(f+"/"+n);
            l.setItemProperty("linkageExportForAS", true);
            l.setItemProperty("linkageIdentifier", n);
        }
    }
}
l.selectNone();
l.editItem();

I Flash MX 2004, vælg File -> New -> Flash Javascript File, paste ovenstående kode, gem din fil i:

C:\Documents and Settings\<profil>\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\Commands\linkage_new_mc.jsfl (udskift lige <profil>)

Tilbage i Flash MX 2004, marker din folder med alle billeder, gå op i Command -> linkage_new_mc og så spiller det - du får endda linkage navne på alle dine nye movieclips :P

--
Morten Barklund
Avatar billede thulstrup Nybegynder
07. januar 2005 - 10:47 #3
JSFL roxx :o)
Avatar billede kalleballe Nybegynder
07. januar 2005 - 11:17 #4
hej og tak, - jeg ser lige på det :)

vh

KalleBalle
Avatar billede barklund Nybegynder
07. januar 2005 - 11:34 #5
JSFL er for skæææææg :)
Avatar billede kalleballe Nybegynder
07. januar 2005 - 11:55 #6
Barky, - aldrig har nogen fortjent sine points som dig, - it works!
Avatar billede barklund Nybegynder
07. januar 2005 - 12:12 #7
Det er ret smart - og ganske lige til at lave. Der er fuld dokumentation og eksempler i hjælpen og det syntaks og struktur minder meget om javascript.

--
Morten Barklund
Avatar billede kalleballe Nybegynder
07. januar 2005 - 12:41 #8
Men kan du sige mig hvorfor

this.attachMovie("clare_looking 221", "myImage", this.getNextHighestDepth());


ikke virker??  det virker hvis jeg manuelt laver et clip med linkage navnet cirkel_looking 221 ??
Avatar billede kalleballe Nybegynder
07. januar 2005 - 12:43 #9
hvis jeg ikke kan få fat i de nye mcs så kan jeg stakkel jo alligevel ikke bruge dem til noget ;)
Avatar billede barklund Nybegynder
07. januar 2005 - 13:10 #10
"clare_looking 221" og "cirkel_looking 221" er vist ikke det samme - hvordan kan det virke?

Men tark for points :)
Avatar billede kalleballe Nybegynder
07. januar 2005 - 13:27 #11
det er ikke det jeg mener, - hvis jeg laver et mc som jeg kalder cirkel_looking 221 og så kalder det ind med

this.attachMovie("cirkel_looking 221", "myImage", this.getNextHighestDepth());

så kommer der en cirkel på min scene, - men hvis jeg efter at have brugt jsfl tingen gør det med et af de automatisk generede mcs altså:

this.attachMovie("clare_looking 221", "myImage", this.getNextHighestDepth());

altså et clip med det automatisk generede linkage id "clare_looking 221" så kommer der intet...
Avatar billede barklund Nybegynder
07. januar 2005 - 13:33 #12
Prøv engang at vælge linkage for det automatiske generede mc og kopier det eksakte navn herfra. Den hedder jo det samme som billedet oprindeligt hed - og derfor nok noget med .png til sidst gætter jeg på.
Avatar billede kalleballe Nybegynder
07. januar 2005 - 13:38 #13
nej du der står ikke png efter i linkage navnet, - det er en tro kopi af mc navnet.

direkte kopieret f.eks. clare_looking 001
Avatar billede kalleballe Nybegynder
07. januar 2005 - 13:44 #14
hvis jeg snupper en png ind på scenen fra min png mappe og laver den om til mc, - fjerner mc'et og loader det med

this.attachMovie("clare_looking 800", "myImage", this.getNextHighestDepth());


så kommer det smukt ind på scenen

Men der sker intet med de automatisk generede filer, - desværre, - er det sikkert at den opfatter linkage navnet som en streng eller noget i den dur?
Avatar billede rohaje Nybegynder
07. januar 2005 - 23:07 #15
måske kan dette løse det på en helt anden måde ?

http://eksperten.dk/spm/488765
Avatar billede kalleballe Nybegynder
07. januar 2005 - 23:20 #16
nu har jeg lavet det på en helt 3. måde, - jeg har lavet alle mine png filer om til swf filer som jeg så har i en ekstern mappe.

Da jeg skal bruge de mange billeder til en animation der blot skal køre fra harddisken så loader jeg nu 2 billeder ind i 2 lag, - hvor jeg så konstant skifter mellem de 2 lag, - det gør at jeg kan få en perfekt animation uden at bruge mere hukommelse en for 2!!! billeder idet jeg hele tiden sletter (dvs loader nyt ind samme sted).
Jeg bruger 2 lag da det ellers vil blinke.

Jeg bruger så en stump setInterval til at køre det i det antal frames/sek som jeg ønsker, - det virker perfekt.
Avatar billede barklund Nybegynder
08. januar 2005 - 14:19 #17
Der manglede bare at blive slået "export in first frame" til også:

var l = fl.getDocumentDOM().library;
var imgs = l.getSelectedItems();
if (imgs.length == 0 || imgs[0].itemType != "folder") {
    alert("vælg en folder med billeder i");
} else {
    var f = imgs[0].name+" MovieClips";
    l.addNewItem("folder",f);
    var i, n;
    for (i = 1; i < imgs.length; i++) {
        if (imgs[i].itemType == "bitmap") {
            n = imgs[i].name.substring(imgs[i].name.lastIndexOf("/")+1);
            l.addNewItem("movieclip", f+"/"+n);
            l.editItem(f+"/"+n);
            l.addItemToDocument({x:0,y:0}, imgs[i].name);
            l.selectItem(f+"/"+n);
            l.setItemProperty("linkageExportForAS", true);
            l.setItemProperty("linkageExportInFirstFrame", true);
            l.setItemProperty("linkageIdentifier", n);
        }
    }
}
l.selectNone();
l.editItem();

Så virker det :)
Avatar billede barklund Nybegynder
08. januar 2005 - 14:19 #18
Men hvis du vil have pointene igen, da du jo slet ikke brugte det, så sig bare til :)
Avatar billede kalleballe Nybegynder
08. januar 2005 - 15:15 #19
du må være gal! jeg får da helt sikkert brug for det en anden gang, - 1000 tak for hjælpen, - tja, - hvem ved, måske bruger jeg det alligevel nu ;)

vh

KalleBalle
Avatar billede barklund Nybegynder
08. januar 2005 - 15:18 #20
Hehe, da virker i hvert fald og sparer dig for en masse tid. Har selv brugt JSFL primært til den slags slave opgaver med en hel masse ting i library, der alle skulle gørse noget ved (renaming, linkage eller tilsvarende)... der er det virkelig et kraftfuld værktøj.
Avatar billede kalleballe Nybegynder
09. januar 2005 - 21:13 #21
Ka' du ikke lige sige mig om det jeg vil lave overhovedet kan lade sig gøre, - it drives me crazy!!!

Jeg har en fil med f.eks. 400 png filer (ca. 35 kb pr. stk.)

Kan flash overhovedet arbejde med så mange filer af den størrelse??

Som nævnt har jeg også forsøgt at lægge dem ud som swf men så har jeg bruge for at alle swf bliver sat til f.eks. 20 procent kvalitet og ikke 80, - er jeg så nød til at gå ind i samtlige 400 swf filer og rette det eller kan man også scripte sig ud af det??

nå, - men vh

KalleBalle
Avatar billede barklund Nybegynder
09. januar 2005 - 22:20 #22
Tja, skal jeg ikke kunne sige, men det burde da være muligt. Har du prøvet manuelt at trække dem ind på scenen som et gammeldags slideshow?
Avatar billede kalleballe Nybegynder
09. januar 2005 - 23:53 #23
jeg har prøvet at have dem i hvert sit frame, - jo længere filen bliver afspillet jo dårligere performance, - det eneste der hjælper er at lægge filerne ekstent som swf så jeg kan loade billederne ind 1 af gangen og dermed skabe en animation. Jeg ved dog ikke om det holder at loade udefra f.eks. 15 gange i sekundet, - det virker lidt hack agtigt, - jeg har vel bare brug for at vide om der er en mere rigtig metode eller om det overhovedet kan lade sig gøre ;)
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