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
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å.
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.
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();
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.
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??
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 ;)
Synes godt om
Ny brugerNybegynder
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.