La oss se på masseinnholdsoppretting. Vi skal bruke en DOS Batch-fil for raskt å generere flere SWFer som inneholder forskjellig tekst, lyd, bilder etc., men som følger en mal definert av oss.
Jeg må innrømme at jeg er en SWF-elsker. Du hører mye i disse dager om HTML5 og andre nye teknologier som på en eller annen måte vil sette den gode gamle SWF ut av drift, men jeg vil være en av de utviklerne som klamrer seg til min elskede SWF så lenge jeg kan. I løpet av de siste 14 årene har SWF vært unik i sin evne til å levere innhold i rikt media over nettet, slik at alle andre teknologier kan komme like nærme.
For elæring er SWF fortsatt ganske mye standard, og er noe jeg bruker gjennom hele mitt leksjoninnhold. Jeg bruker den til alt fra virtuelle lærervideoer til vektorbilder, vektordekst og interaktive aktiviteter av alle slag.
For å kunne lage masseinnhold, har jeg funnet ut at ingenting fungerer like raskt og kraftig som en god DOS-batchfil. Du kan raskt skrive og modifisere en batchfil for å gjøre alle slags interessante ting, og hvis du jobber med en stor mengde bilder, tekst og lyd, kan en batchfil raskt gjøre det til multimedieinnhold i form av en SWF.
Grunner du kanskje liker å gjøre dette er:
Det eneste verktøyet i Windows som du trenger annet enn kodeditoren er Flex SDK, og eventuelt en åpen kildekode ASCII til UTF-8-konverteringsprogrammet, kalt iconv fra GnuWin-prosjektet, hvis du planlegger å bruke internasjonale tegn eller aksentmerker i teksten.
La oss se på det endelige resultatet vi skal jobbe for
Bulk skapelse betyr at alle dine SWFs vil følge samme mal, så bestem deg for hva slags elementer du har behov for: vektordekst, bilde, lyd osv..
Gi navn på filene dine riktig: hver tekst, bilde og lydfil skal ha matchende navn, så vel som tilfelle. Hvis filene dine er uorganiserte, kan det være lurt å laste ned et filverktøysprogram til batch omdøpe dem, konvertere til små bokstaver, etc. Et slikt program jeg fant er kalt Useful File Utilities.
Du vil kanskje åpne en tekstfil og beholde en liste over absolutte baner til disse elementene, inkludert eventuelle skrifter du planlegger å legge inn.
I kilde / nytte mappe med nedlasting for denne opplæringen, finner du noen små batchskript som kan hjelpe deg med å opprette en masterordliste som skal brukes med SWF-opprettelsen. Hvis filnavnene inneholder mer enn ett ord, bruk en bindestrek mellom ord [-]. Dashes er allerede innkvartert for i min hovedbatfil som lager SWF-ene. Når du bruker bindestreker, blir de konvertert til tall og senere konvertert tilbake til bindestreker med en annen liten nyttefil, da ellers vil dine AS3-klassefiler ikke kompilere.
Åpne kodeditoren din (jeg bruker alltid Notepad ++ for multispråkskoding, det er en fantastisk åpen kildekode-applikasjon).
I de følgende trinnene skal jeg skissere mulige elementer for deg å legge til i klassens fildefinisjon, som vil bli brukt av DOS-filen din til å generere alle dine SWF-er.
Hvis du vil følge med ved å undersøke klassefilen jeg brukte for disse utdragene, åpner du Kilde / lago.as filen i nedlastingspakken for denne opplæringen.
Vi begynner med å legge til et generisk pakkeoppsett i AS3, som uten noen funksjoner ville se slik ut:
pakke import flash.display.Sprite; importer flash.display. *; offentlig klasse lago utvider Sprite
La oss nå legge til noen faktiske elementer til vår SWF!
Som alltid begynner du ved å importere de nødvendige klassefilene:
importere flash.media.Sound; importere flash.media.SoundChannel;
Her er koden for å legge inn en lyd på et statisk sted. Du vil legge merke til når vi kommer til å lage vår DOS-fil, vi bruker variablene for mappen og filnavnet i stedet.
[Embed (source = "C: /Users/You/Desktop/sound/lago.mp3")] offentlig var soundClass: Class; var sndChannel: SoundChannel; var smallSound: Sound = new soundClass () som Sound;
Her er kode for å legge inn et bilde:
[Embed (source = "C: /Users/You/Desktop/images/lago.swf")] offentlige var Bilde: Klasse; var bilde: Sprite = nytt bilde ();
I min fil lager jeg først en Sprite, som jeg legger til bildet på, men hvis du vil legge bildet direkte til scenen du bare ville bruke:
addChild (bilde);
Når jeg bruker internasjonale tegn, legger jeg inn fonten min ved å spesifisere hvilke Unicode-tegn som skal inkluderes:
[Embed (mimeType = "application / x-font", unicodeRange = "U + 0061-U + 007A, U + 00E1-U + 00E1, U + 00E9-U + 00E9, U + 00ED-U + 00ED, U + 00F1 00F1-U + U + 003F-003F + U, U + 00FA-U + 00FA, U + 00E1-U + 00E1, U + 00F3 00F3-U + U + 00BF-U + 00BF, U + 00A1- U + 00A1 ", kilde =" C: /Users/You/Desktop/BradBunR.ttf ", fontName =" Brady ")] privat var terminatorFontClass: Klasse;
For å se hvilke tegn du trenger, kan du sjekke dette diagrammet her, funnet på University of Wisconsin-Madisons Space, Science og Engineering Website. I Windows kan du også åpne ditt charmap.exe-program og se på verdiene for tegnene du trenger.
tekstformat
å stil din tekstBegynn med å importere de nødvendige klassene:
importer flash.text. *; importer flash.text.TextFormat; importer flash.text.AntiAliasType;
Opprett nå en tekstfelt
og legg til a tekstformat
til det:
var __text_tf: TextField = nytt TextField (), __ format: TextFormat = nytt TextFormat ();
La oss nå bruke noen styling til vår tekst. Jeg brukte en størrelse for teksten nedenfor, men i min faktiske fil justerer jeg størrelsen basert på strenglengde, så denne størrelseslinjen vil ikke bli brukt.
__format.size = 30; __format.font = "Brady"; __format.letterSpacing = 6; __format.align = TextFormatAlign.CENTER; __text_tf.width = 500; __text_tf.embedFonts = true; __text_tf.wordWrap = true; __text_tf.defaultTextFormat = __format; __text_tf.autoSize = "center"; __text_tf.text = str;
Dette var litt av et vanskelig stykke kode, men hvis du prøver å lage bulk SWFs av setninger og til og med setninger i stedet for bare enkle ord, vil du oppdage at det er nødvendig å imøtekomme for forskjellige strenglengder. Ellers vil noen av ordene dine være for store, eller for små.
hvis (str.length <= 9) __format.size = 70; else if (str.length >= 14 && str.length <= 22) __format.size = 50; __text_tf.defaultTextFormat = __format; else if (str.length >= 28 && str.length <= 48) __format.size = 40; __text_tf.defaultTextFormat = __format; else __format.size = 50;
Selvfølgelig kan du endre disse verdiene i henhold til dine egne innholdsbehov.
tekstfelt
Denne linjen utelukket meg i begynnelsen, og var avgjørende for at teksten mitt kunne sitte riktig i tekstfelt
.
__text_tf.autoSize = "center";
Denne koden tok det meste av en dag for å få riktig, og er den eneste måten jeg syntes å riktig endre størrelse og sentrere en SWF. Du kan endre x, y, targetHeight
, og targetWidth
verdier avhengig av størrelsen på dine egne SWFer, men ellers kan denne koden hjelpe deg med å oppnå sentrering og resizing:
var forhold: tall; var bred: tall; var målbredde: tall = 400; var targetHeight: Number = 250; hvis (pic.width < targetWidth) ratio = targetWidth / pic.width; pic.width = targetWidth; pic.height *= ratio; wide = pic.width*ratio; if (pic.height < targetHeight) ratio = targetHeight / pic.height; pic.width *= ratio; pic.height = targetHeight; wide = pic.width*ratio; if (pic.width > targetWidth) ratio = targetWidth / pic.width; pic.width * = ratio; pic.height * = ratio; bred = pic.width * ratio; hvis (pic.height> targetHeight) ratio = targetHeight / pic.height; pic.width * = ratio; pic.height * = ratio; bred = pic.width * ratio; pic.y = 110; pic.x = 250 - bred / 2; pic.scaleX = pic.scaleY; square.addChild (bilde);
Ta en titt på prøvefilen Kilde / lago.as hvis du trenger mer hjelp til å lage klassemaleremalen din, så er det nå på tide å lage DOS-versjonen av filen din.
Åpne filen lago.bat.txt i nedlastingens kildekatalog, og lagre navnet til bare lago.bat. Hvis du bruker en kodeditor som Notepad ++, bør du ha en Batch-uthevende syntaks som nå skal brukes. Selv om det ikke er nødvendig, gjør syntaksutheving det mye enklere.
Husk at DOS trenger deg til å unnslippe bestemte tegn ved å prefikse dem med en caret [^] (eller noen ganger a double-caret [^^], inkludert:
Husk også følgende ting:
ekko
slik at den vil bli inkludert >>! filoutta!
slik at den blir lagt til vår SWF-skaperen .bat-filBruk et program som Notepad ++ til å kjøre et RegEx-søk og erstatt, først unnslippe de nødvendige tegnene, og legg deretter til ekko
kommandoer i begynnelsen av linjene, eller hvor \ n er funnet, og legger til >>! filoutta!
før retur, eller hvor \ r er funnet. For eksempel:
Finne:
\ n
Erstatt med:
\ n ekko
Og
Finne:
\ r
Erstatt med:
>>! filoutta!
\ r
Endelig lagre denne DOS-versjonen av filen, dvs.. myclass.bat.
For bedre å følge med, åpne følgende fil fra nedlastingens kilde katalogen: batch_create_swfs_word_picture_w_audio.bat.txt. Endre filen som slutter til bare .flaggermus og lagre.
Poeng om denne .bat-filen:
Jeg bruker en masterordlistefil for å lage min SWF, som finnes i kilde / ordliste / glossary.txt. Hvis du vil opprette en slik fil fra en mappe med filer, kan du bruke et av mine .bat-filer som finnes i kilde / nytte mappe.
Husk at batchbehandling krever at du er veldig forsiktig når du navngir eventuelle eiendeler. Den beste tilnærmingen er å gi noen bilde- og lydverdier beregnet på samme SWF, nøyaktig samme navn, og legg dem i de riktige undermappene - for eksempel:
lyd / lago.mp3
images / lago.swf
De ordliste / glossary.txt-fil for å lage bare SWF for lago ville bare lese
lago
Skjønnheten i systemet mitt er at min glossary.txt filen kan inneholde en ubegrenset mengde ord - faktisk har jeg kjørt det med 1000 + ord, uten problemer i det hele tatt! Men eiendelene du forsøker å legge inn, må eksistere, og være på riktig sted, oppkalt riktig, eller SWF for det ordet vil ikke kompilere.
Se igjen på batch_create_swfs_word_picture_w_audio.bat fil. Bla ned til delen under REM 1 tittel, og du finner begynnelsen av området der du kan legge til DOS-versjonen av den egendefinerte AS3-klassefilen du opprettet i trinn 11.
En ting å merke seg er at jeg bruker variabel !minvar!
for mappenavnet, slik at jeg kan slippe denne .bat-filen i en hvilken som helst mappe i en hovedmappe på datamaskinen min, og stiene til filene vil fortsatt være riktige så lenge jeg bruker /Bilder og /lyd underkataloger. Undersøk koden min før du limer inn din egen, slik at du kan gjøre de riktige erstatninger.
Avsnittene med tittelen REM 1, REM 2, REM 3, og REM 4 alt krever at du tilpasser basert på dine egne mappestier.
Åpne opp utf_convert.bat.txt fil og endre navn på det til utf_convert.bat. Finn REM 1 og REM 2 seksjoner, og fyll ut de riktige banene for filene dine.
Tid til å bli kompilert! Finn hovedkatalogen du har brukt til alle banene dine, og opprett en ny mappe som heter prøve løp. Åpne nedlastingsmappen for denne opplæringen, og kopier undermappene fra kilde / trialrun og lim dem inn i prøve løp mappe du nettopp opprettet i hovedkatalogen din.
Kopiere batch_create_swfs_word_picture_w_audio.bat og eventuelt utf_convert.bat filer til prøve løp katalog du nettopp opprettet.
Tid til å gi batch SWF-opprettelsen et forsøk! Klikk på batch_create_swfs_word_picture_w_audio.bat Dette vil skape AS3-klassefiler som skal brukes til å generere individuelle SWF-er.
Du får instruksjoner i kommandolinjekonsollen for å klikke på utf_convert.bat og utf_click_to_convert.bat filer, i den rekkefølgen. Dette konverterer alle dine AS3-klassefiler til UTF-8-kompatible filer før du kjører Flex AS3-kompilatoren.
Etter at UTF-8-konverteringen er ferdig, vil kommandolinjekonsollen vente på at du klikker på en hvilken som helst tast, før du gjenopptar. Når du gjør det, vil den faktiske SWF-samlingen begynne. For prøveversjonen vil 3 SWF-filer bli opprettet i trialrun / word_scripts_sp_au_utf8 katalog.
Åpne opp trialrun / word_scripts_sp_au_utf8 katalog og se om SWF-filene dine er der. Ved siden av .as klassefiler, bør du se: lago.swf, nieve.swf, og hielo.swf.
Når du kjører dine egne ordlister for batch SWF-oppretting, kan du ha lange filnavn som må omdøpes i batch. Siden du ikke kan ha bindestreker i dine AS3-klassenavn, bruker jeg tall til å erstatte dem når det er nødvendig, så kjører jeg et lite verktøy. nytte / rename_long_swfs.bat.txt av nedlastingsmappen din. Gi nytt navn til utvidelsen av denne filen til .bat, og kopier den deretter til word_scripts_sp_au_utf8 mappe hvor dine ferdige SWFs er bosatt for å gjøre dette omdøpe på en gruppe SWFs.
Jeg håper denne opplæringen vil hjelpe noen av dere til å nyte underverkene og sann programmering lykke som kan komme med SWF-batchopprettelse gjennom DOS. For å se hundrevis av perfekte multimedia-SWFer opprettet med bare noen få klikk, er det en god følelse! Tusen takk for at du har lest denne opplæringen, og jeg gleder meg til eventuelle kommentarer eller spørsmål du måtte ha.
Merk: Det er verdt å merke seg at ANT ofte betraktes som et verdig alternativ for batchfilopprettelse, spesielt for Mac-brukere. Ta en titt på Jesse Freeman's Introduksjon til Antipile for å finne ut mer.