Ultim-o
%Europe/Berlin %707 %2005, 17:58
http://www.flashfocus.nl/~images/flash8-technical-review/flashpro.jpg
Flash 8 Professional
Inhoud:
In dit artikel vind je meer informatie over de volgende onderwerpen:
Intro
What’s New in Flash 8 ActionScript
New Classes
Video
Mobile Devices
Conclusie!
Intro
WOOOHOOOO!!!! Flash 8 is er. Uitroepteken! Flash 8 is nu al een statement, ik hoor zoveel positieve geluiden om me heen uit de grote boze Flash Community... Uber Flash Gurus zoals Aran Balkan, Colin Moock en Branden Hall die constant beweren dat dit de beste Flash Release ooit is..
Of deze quote van Mike Downey (Flash Product Manager bij MacroMedia) :
“Having been an avid user of Flash since I ordered my first copy of Flash 2, I can say with confidence that I too have not been this excited about a new release of Flash since Version 4”...
Hmm dan word je 1: heeeeeeeel erg benieuwd en krijg je 2 : heeeeeel veel zin om Flash 8 te testen.
Weet je nog Flash MX 2004? Owja.. dat is voor jullie nu het standaard programma natuurlijk, als je eenmaal Flash 8 hebt zeker niet meer.
Flash MX 2004 was (achteraf gezien) een buggy release, er waren 2 updaters nodig om het stabiel te laten draaien. Veel negatieve geluiden uit de Flash Community kan ik me nog herinneren:
-Macromedia had meer moeten doortesten
-Ze hadden niet zo snel moeten releases
-Er had meer naar de Flash gebruikers geluisterd moeten worden
-Vul maar aan...
De voornaamste nieuwe feature (voor coders) was AS 2.0, eigenlijk een nieuwe manier om dezelfde dingen te bouwen. Tuurlijk is het een hele vooruit gang, je kunt veel gestructureerder, veel netter Flash projecten bouwen. Je kunt veel meer onderdelen uit Flash projecten hergebruiken, wat natuurlijk heel mooi is.
Er zaten wat nieuwe componenten in, en Forms en Slides. Dit zou het heel makkelijk moeten maken om snel presentaties te maken en flash projecten meer Object Oriented op te bouwen... maar wees eerlijk, heeft iemand van jullie dit al eens gebruikt? En zoja, had het echt toegevoegde waarde?
Precies.
En er waren zeker nog wel wat andere positieve dingen: er was meer aandacht besteed aan video, je kon Flash Projects aanmaken, waarmee je met meerdere mensen tegelijk aan 1 project kan werken.... en vast nog een heleboel dingen die ik vergeten ben.
Naja, al met al was het niet echt een super release, en werd er veel vanuit de community verweten naar MM dat ze te weinig geluisterd hadden. Dan kun als bedrijf 2 dingen: het allemaal negeren of de volgende release extra goed luisteren... Drie keer raden wat ze gedaan hebben...
1..
Goed! In 1 keer goed, ze hebben extreem goed geluisterd. Het ziet er allemaal gewoon lekker uit, en het belangrijkste.. het voelt ook goed aan, stabiel enzo. Het voelt goed aan, dat klinkt raar he? maar het is echt zo, dat heb je weleens...
Opstart schermpje ziet er goed uit, het heet gelukkig weer goed flash 8, geen rare verkappingen zoals 2004 oid, geen MX, heerlijk! FLASH 8!
MacroMedia heeft t.o.v. van de vorige release meer naar de designers geluisterd, of tenminste meer nieuwe features voor designers erin weten te verwerken. De intergratie met Fireworks is weer een stukken beter geworden, alle effecten die in Fireworks beschikbaar zijn, zijn nu in Flash ook beschikbaar, en als dikke vette bonus, dynamisch controllable met Actionscript!
Je kunt in Fireworks gewoon een vierkantje tekenen, daar een dropshadow tegenaan gooien, het vierkantje kopieren en gewoon met effect en al plakken in Flash en daarna het effect in Flash aanpassen... lekker toch?
Maar nu genoeg designgeneuzel, het gaat hier om een technische review.
What’s New in Flash 8 ActionScript
“Macromedia Flash Basic 8 and Macromedia Flash Professional 8 provide several enhancements that make it easy for you to write robust scripts using the ActionScript language. The new features, which are discussed in this chapter, include…”
Blablablabla.. Oke ik zit nu in de help, in een hoofdstuk waar aandacht wordt besteed aan alle nieuwe dingen in actionscript.. Ik haal er voor mij de belangrijkste/aparste dingen uit :
You can load new kinds of image files at runtime, which include progressive JPEG images, and non-animated GIF and PNG files. If you load an animated file, the first frame of the animation will display.
Duidelijk verhaal, en eindelijk! Meteen even een proef op de som genomen, en jahoor, erg strak! In fireworks een 32 alpha channel png geexporteerd, en deze dmv loadMovie ingeladen, en het ziet er super uit. Geen gekartelde randjes oid.
Built-in Flash Player version detection has been improved (application building), but the functionality remains the same as Flash MX 2004.
Yeah! Lekker, geen vage scripts meer downloaden om te Flash Player versie te checken, gewoon wat aanvinken bij het exporteren, check voor meer info een paar nieuwsitems hieronder..
A new garbage collector has been built into Flash Player, which uses an incremental collector to improve performance.
Dit is een pittig item, en ik weet daar helaas niet de inside outs van.. Alleen dat het inderdaad bij vorige versies nog weleens wat dingen niet wou weggooien. De garbage collector (correct me if I`m wrong) haalt alle variables en objecten op die niet meer gebruikt worden.
Voor elke variable en object gebruikt Flash een stukje geheugen, zodra de garbage collector erachter komt dat een variable of object niet meer wordt gebruikt, verwijdert de Garbage Collector dit, en komt er weer een stukje geheugen vrij. Het is dus echt een vuilniswagen die achter je swf aankomt en al het vuil ophaalt zodat je swf lekker blijft lopen. Als deze vuilniswagen weleens wat wil laten glippen is dat natuurlijk nooit goed, en mij staat bij dat dat in vorige versies gebeurde. Een goede zaak dus dat het nu (nog) beter werkt.
Voor meer info over de Garbage Collector en Memory Usage in Flash kan je dit artikel lezen (!aanrader)
http://timotheegroleau.com/Flash/articles/scope_chain.htm
Flash Player has improved local security, for additional safety when running SWF files on your hard drive.
Dit is even schrikken de eerste keer dat je dat meemaakt, je bent lekker bezig met een project en je maakt gebruik van serverside data. In de Flash IDE werkt de swf helemaal lekker, maar zodra je de swf lokaal opent komt er een melding. Je moet nu aangeven dat je het hele zaakje vertrouwt, de swf opnieuw exporteren in flash en je kan de swf wel gewoon lokaal gebruiken.
You can upload files to a server using the FileReference and FileReferenceList API.
Yeah! Ook eindelijk! Geen gekloot meer met het Yamzbrowsers component, maar gewoon rechtstreeks vanuit je swf 1 of meerdere files uploaden. Dit is te gek en schrapt weer een rede van het lijstje om HTML ipv Flash te gebruiken.
En als laatste toch nog even een design dingetje :
Slice 9 lets you scale movie clip instances without widening the strokes that outline the movie clip. You can access this feature in both Flash Basic 8 and Flash Professional 8 using ActionScript code.
Je kunt nu dmv 9 slices (vlakken) in een movieclip aan te maken, de movieclip zo scalen zonder dat deze uitrekt zeg maar. Zonder dat de lijnen van de movieclip ook meeschalen en opeens veeeel dikker worden, zonder dat de ronde hoekjes van een movieclip opeens niet meer rond zijn.
Dit waren de belangrijkste dingen uit een lijst van 20 punten... Maarrrr we zijn er nog niet! Nu komen de nieuwe classes aan bod :
“Additions to the ActionScript language” heet dat hoofdstuk in de flash help.
New Classes
Ook hier pak ik de belangrijkste en apartste classes eruit.
- Filters
MM heeft een ‘flash.filters’ package toegevoegd, dit is erg interessant want je hebt nu legio mogelijkheden in runtime beeldbewerking.
Zelf heb ik er nog niet heel veel meegedaan, voornamelijk omdat er genoeg voorbeelden online te vinden zijn met verschillende effecten. Ik som hier de Filter classes op, met de beschrijving van de Flash help erachter zodat je zelf alle creatieve mogelijkheden kunt bedenken :
The BevelFilter class (in flash.filters package) lets you add bevel effects to objects.
The BlurFilter class lets you apply blurs to objects in Flash.
The ColorMatrixFilter class (in flash.filters package) lets you apply transformations to RGBA colors and alpha values.
The ConvolutionFilter class (in the flash.filters package) lets you apply matrix convolutions filter effects.
The DropShadowFilter class (in the flash.filters package) lets you add drop shadows to objects.
The GlowFilter class (in the flash.filters package) lets you add glow effects to objects.
The GradientBevelFilter class (in the flash.filters package) lets you add gradient bevels to objects.
TheGradientGlowFilter class (in the flash.filters package) lets you add gradient glow effects to objects.
Samen met de op 'CacheAsBitmap' gaat dit geweldige grafische effecten opleveren.
- BitmapData
De BitmapData class geeft je volledige controle over pixels. De BitmapData class is een array met pixels, en een pixels bij staat uit 32-bit getal. Dit getal is opgebouwd uit vier 8-bit “channels” waardes, waardes van 0 – 255. Deze vier kanalen staan voor de alpha, rode, groene en blauwe waarde per pixel.
In het voorbeeld hieronder kan je zelf een *.png, *.gif of *jpg uploaden dmv de FileReference class. Dit kunnen ook plaatjes met alpha-waardes zijn. Zodra het plaatje geupload is kun je met je muis per pixel de kleur opvragen. Dit kan door de BitmapData class te gebruiken en de method getPixel();
In het volgende voorbeeld wordt een transparante 32 channel .PNG ingeladen, kan kun je met de muis van elke pixel de kleur zien :
http://www.flashfocus.nl/~images/flash8-technical-review/bitmapdata.swf
Wordt er niets ingeladen bekijk het voorbeeld hier (http://www.flashfocus.nl/~images/flash8-technical-review/bitmapdata.swf) dan...
Of laad zelf een transparante .PNG in:
http://www.flashfocus.nl/~images/flash8-technical-review/filereference.swf
- Filereference
De FileReference class, eindelijk! Hoe het precies met rechten en veiligheid zit weet ik niet, maar je kan nu vanuit de flash player toegang krijgen tot de locale harde schijven. Zoals je hierboven kunt zien werkt dit als een trein, hieronder zie je de code :
var _file = new flash.net.FileReference();
_file.browse([{description: "Image files", extension: "*.jpg;*.gif;*.png", macType: "JPEG;jp2_;GIFF"}]);
Je kunt hier mooi een omschrijving meegeven om watvoor files het gaat, en welke files in de browser window zichtbaar mogen zijn, zowel voor de mac als pc.
Door een listener object aan de FileReference instantie toe te voegen krijg je informatie over wanneer de gebruiker een file selecteerd, en als deze file dan geupload wordt door de method _file.upload(“hierjeserversidescript.ext”); krijg je meer info over de progress, wanneer de upload klaar is, enz.
Zo kan je heel nauwkeurig de voortgang van je file transfer weergeven aan de gebruiker.
- Multi-language
Wie niet alleen hobby matig maar ook zakelijk met Flash aan de gang is, heeft vast wel eens meegemaakt dat een opdrachtgever haar website in meerdere talen wilt hebben. Wat je dan kan doen is 3 fla’s maken met 3 verschillende talen in elke fla... Niet echt handig als je wijzigingen in 3 fla’s moet doorvoeren...
Macromedia heeft daar in deze release aandacht aan besteed. Met het zogenaamde XML Localization Interchange File Format(XLIFF) kun je xml files maken die meerdere talen bevat. Met de mx.lang.Locale class kan je de goede taal op 3 manieren in je swf zetten :
automatically at runtime" -- Flash Player replaces string IDs with strings from the XML file matching the default system language code returned by System.capabilities.language.
"manually using stage language" -- String IDs are replaced by strings at compile-time and cannot be changed by Flash Player.
"via ActionScript at runtime" -- String ID replacement is controlled using ActionScript at runtime. This option gives you control over both the timing and language of string ID replacement.
Hoe het precies werkt heb ik nog niet uitgeprobeerd, en als je creatief bent zal het voorheen ook zeker wel gekund hebben, maar het is erg fijn om er nu een standaard voor te hebben wat in Flash zelf zit. Dit bespaart je een hoop geklungel om in verschillende fla’s dezelfde dingen aanpassen. Ik begrijp zo snel dat je aan textvelde, of beter gezegd strings ID’s kunt meegeven. En als je zorgt dat bij een ID in de xml file verschillende talen staan pakt Flash zelf de goede taal eruit.
- External Interface
De External API maakt directe communicatie tussen Actionscript en de container van de Flash Player (bijv HTML met Javascript of een desktop applicatie die de Flash Player embed) mogelijk.
Ook hier word ik ook erg blij van... Iedereen weet dat het altijd een gepruts was omdat Javascript en Flash goed met elkaar te laten communiceren. Nu heb je dus geen moeilijk-moeilijk-moeilijk getest meer met data overgooien tussen JS en Flash, je kan nu lekker callbacks zetten en echte data heen en weer passen. Gewoon Arrays, Objecten, Numbers, Strings zoals ze bedoeld zijn.
Als je nu vanuit Flash een JS method aanroept kan JS meteen een waarde returnen en wordt dit ook gewoon netjes in een callback van Flash opgevangen, en zo ook andersom.
Hier een simpel voorbeeld uit de Flash help :
import flash.external.*;
_btn.onPress = function()
{
var _str = String(ExternalInterface.call("sayHello", "browser"));
_txt.text = _str; //Hey Flashfocus People!
};
Hier het script wat in de HTML pagina staat :
<script>
function sayHello(name) {
alert(">> Hello " + name + ".");
return "Hey Flashfocus People!";
}
</script>
Owja, en dit staat ook nog stiekem in de help ertussen :
Note: Official support has been added for the AsBroadcaster class in Flash 8.
Een aanrader voor iedereen die een beetje geinteresseerd is in OOP technieken...
Video
1 plaatje zeg meer dan 1000 woorden, en 1 video zegt meer dan 1000 plaatjes.. ofzoiets? Toch?
Naja kijk maar :
http://www.flashfocus.nl/~images/flash8-video/video.swf
Klik maar...
De nieuwe Flash 8 On2 VP6 codec rockt dus! Nu kan de concurrentie nog meer aangegaan worden met Quicktime en Windows Media Player, buiten het feit dat Flash 8 transparante video ondersteunt!
De videos hierboven zijn allebei als .avi geimporteerd en daarna weer geexporteerd met Flash. Dezelfde instellingen, uiteindelijke dezelfde bestandsgrootte (4,66 mb) en heel veel verschil in kwaliteit!
Met het enorme kwaliteitsverschil en ondersteuning van transparantie in video ziet het web binnen de korste keren er een stuk anders uit is mijn bescheiden mening...
Transparante video over transparante video, geweldig!
Wat niet echt nieuw is maar nu wel handig in het gebruik is zijn cuepoints. Met het importeren van video in Flash kan je ook cuepoint aangeven met het type ‘event’ of ‘navigation’ en bijbehorende parameters.
Event cue points are used to trigger ActionScript methods when the cue point is reached, and let you synchronize the video playback to other events within the Flash presentation.
Navigation cue points are used for navigation and seeking, and to trigger ActionScript methods when the cue point is reached. Embedding a navigation cue point inserts a keyframe at that point in the video clip.
http://www.flashfocus.nl/~images/flash8-technical-review/videocuepoints.jpg
Bij Flash 8 zit ook een aparte 'Flash 8 Video Encoder.exe' waarmee je allerlei video formaten kan omzetten naar .FLV.
Mobile Devices
Mobile, mobile, mobile... Je hoort het steeds vaker en overal. Voor de meesten nog een ver van je bed show, maar het is dichterbij dan je denkt! Wen er alvast maar aan, mobile wordt hot. In deze release is er veel aandacht aan besteed.
Bij de swf publish settings kun je kiezen voor de Flash Lite 1.0 en Flash Lite 1.1 player.
http://www.flashfocus.nl/~images/flash8-technical-review/publish_settings.jpg
Zodra je 1 van de 2 players kiest wordt een 'device' button in het propertie panel actief.
http://www.flashfocus.nl/~images/flash8-technical-review/properties.jpg
Was het in de vorige versie nog lastig je swf te testen in de Flash IDE, kun je nu uit een lijst allerlei devices en toepassingen selecteren om je swf te testen.
http://www.flashfocus.nl/~images/flash8-technical-review/devicesettings.jpg
http://www.flashfocus.nl/~images/flash8-technical-review/flashlite_ngage.jpg
Zoals je ziet kun je nu kiezen uit erg veel verschillende devices, en elk verschillende device heeft weer andere mogelijkheden met de Flash Lite Player. Buttons werken anders, het geheugen verschilt, de screen size varieerd. De devices worden nu representatief weergegeven. En via een update is het mogelijk de nieuwste devices met instellingen te downloaden, zo blijf je altijd up to date.
Helaas ondersteunt de laatste Flash Lite Player 1.1 alleen nog maar Actionscript 4 en bepaalde dingen van Actionscript 5. Je kan natuurlijk op je klompen aanvoelen dat dit snel gaat veranderen en het niet lang meer gaat duren dat video afspelen via de Flash Lite player op je mobiel net zo normaal is als het nu voor het web is.
Conclusie!
Mijn 'overal opinion' is dat MacroMedia volgens mij deze keer bewust heeft gekozen om niet extreem veel nieuwe features erin te stoppen, maar vooral te concentreren op de kwaliteit van de features die ze er wel instoppen. Flash is en blijft een programma dat design met programmeren combineert, en dat komt in deze versie weer erg goed naar voren. Voor de pure die-hard programmeurs lijkt het misschien allemaal niet spannend, maar ik weet zeker als je er meegewerkt hebt en je alle mogelijkheden door hebt, je zeker onder de indruk bent!
Met het feit dat ze de Flash Player lekker klein hebben weten te houden, en de performance enorm opgeschroefd is, is MacroMedia weer helemaal back-on-track, Thumbs Up!
Ik ben erg positief over deze release, en ben benieuwd wat het allemaal teweeg gaat brengen in de Flash Community.
Okay! Dit was het, hopelijk hebben jullie een beetje genoten, en als jullie zo meteen allemaal heel hard 'MEER! MEEER! MEEEEEEER!!!' schreeuwen komt er volgende week misschien nog een review...
Flash 8 Professional
Inhoud:
In dit artikel vind je meer informatie over de volgende onderwerpen:
Intro
What’s New in Flash 8 ActionScript
New Classes
Video
Mobile Devices
Conclusie!
Intro
WOOOHOOOO!!!! Flash 8 is er. Uitroepteken! Flash 8 is nu al een statement, ik hoor zoveel positieve geluiden om me heen uit de grote boze Flash Community... Uber Flash Gurus zoals Aran Balkan, Colin Moock en Branden Hall die constant beweren dat dit de beste Flash Release ooit is..
Of deze quote van Mike Downey (Flash Product Manager bij MacroMedia) :
“Having been an avid user of Flash since I ordered my first copy of Flash 2, I can say with confidence that I too have not been this excited about a new release of Flash since Version 4”...
Hmm dan word je 1: heeeeeeeel erg benieuwd en krijg je 2 : heeeeeel veel zin om Flash 8 te testen.
Weet je nog Flash MX 2004? Owja.. dat is voor jullie nu het standaard programma natuurlijk, als je eenmaal Flash 8 hebt zeker niet meer.
Flash MX 2004 was (achteraf gezien) een buggy release, er waren 2 updaters nodig om het stabiel te laten draaien. Veel negatieve geluiden uit de Flash Community kan ik me nog herinneren:
-Macromedia had meer moeten doortesten
-Ze hadden niet zo snel moeten releases
-Er had meer naar de Flash gebruikers geluisterd moeten worden
-Vul maar aan...
De voornaamste nieuwe feature (voor coders) was AS 2.0, eigenlijk een nieuwe manier om dezelfde dingen te bouwen. Tuurlijk is het een hele vooruit gang, je kunt veel gestructureerder, veel netter Flash projecten bouwen. Je kunt veel meer onderdelen uit Flash projecten hergebruiken, wat natuurlijk heel mooi is.
Er zaten wat nieuwe componenten in, en Forms en Slides. Dit zou het heel makkelijk moeten maken om snel presentaties te maken en flash projecten meer Object Oriented op te bouwen... maar wees eerlijk, heeft iemand van jullie dit al eens gebruikt? En zoja, had het echt toegevoegde waarde?
Precies.
En er waren zeker nog wel wat andere positieve dingen: er was meer aandacht besteed aan video, je kon Flash Projects aanmaken, waarmee je met meerdere mensen tegelijk aan 1 project kan werken.... en vast nog een heleboel dingen die ik vergeten ben.
Naja, al met al was het niet echt een super release, en werd er veel vanuit de community verweten naar MM dat ze te weinig geluisterd hadden. Dan kun als bedrijf 2 dingen: het allemaal negeren of de volgende release extra goed luisteren... Drie keer raden wat ze gedaan hebben...
1..
Goed! In 1 keer goed, ze hebben extreem goed geluisterd. Het ziet er allemaal gewoon lekker uit, en het belangrijkste.. het voelt ook goed aan, stabiel enzo. Het voelt goed aan, dat klinkt raar he? maar het is echt zo, dat heb je weleens...
Opstart schermpje ziet er goed uit, het heet gelukkig weer goed flash 8, geen rare verkappingen zoals 2004 oid, geen MX, heerlijk! FLASH 8!
MacroMedia heeft t.o.v. van de vorige release meer naar de designers geluisterd, of tenminste meer nieuwe features voor designers erin weten te verwerken. De intergratie met Fireworks is weer een stukken beter geworden, alle effecten die in Fireworks beschikbaar zijn, zijn nu in Flash ook beschikbaar, en als dikke vette bonus, dynamisch controllable met Actionscript!
Je kunt in Fireworks gewoon een vierkantje tekenen, daar een dropshadow tegenaan gooien, het vierkantje kopieren en gewoon met effect en al plakken in Flash en daarna het effect in Flash aanpassen... lekker toch?
Maar nu genoeg designgeneuzel, het gaat hier om een technische review.
What’s New in Flash 8 ActionScript
“Macromedia Flash Basic 8 and Macromedia Flash Professional 8 provide several enhancements that make it easy for you to write robust scripts using the ActionScript language. The new features, which are discussed in this chapter, include…”
Blablablabla.. Oke ik zit nu in de help, in een hoofdstuk waar aandacht wordt besteed aan alle nieuwe dingen in actionscript.. Ik haal er voor mij de belangrijkste/aparste dingen uit :
You can load new kinds of image files at runtime, which include progressive JPEG images, and non-animated GIF and PNG files. If you load an animated file, the first frame of the animation will display.
Duidelijk verhaal, en eindelijk! Meteen even een proef op de som genomen, en jahoor, erg strak! In fireworks een 32 alpha channel png geexporteerd, en deze dmv loadMovie ingeladen, en het ziet er super uit. Geen gekartelde randjes oid.
Built-in Flash Player version detection has been improved (application building), but the functionality remains the same as Flash MX 2004.
Yeah! Lekker, geen vage scripts meer downloaden om te Flash Player versie te checken, gewoon wat aanvinken bij het exporteren, check voor meer info een paar nieuwsitems hieronder..
A new garbage collector has been built into Flash Player, which uses an incremental collector to improve performance.
Dit is een pittig item, en ik weet daar helaas niet de inside outs van.. Alleen dat het inderdaad bij vorige versies nog weleens wat dingen niet wou weggooien. De garbage collector (correct me if I`m wrong) haalt alle variables en objecten op die niet meer gebruikt worden.
Voor elke variable en object gebruikt Flash een stukje geheugen, zodra de garbage collector erachter komt dat een variable of object niet meer wordt gebruikt, verwijdert de Garbage Collector dit, en komt er weer een stukje geheugen vrij. Het is dus echt een vuilniswagen die achter je swf aankomt en al het vuil ophaalt zodat je swf lekker blijft lopen. Als deze vuilniswagen weleens wat wil laten glippen is dat natuurlijk nooit goed, en mij staat bij dat dat in vorige versies gebeurde. Een goede zaak dus dat het nu (nog) beter werkt.
Voor meer info over de Garbage Collector en Memory Usage in Flash kan je dit artikel lezen (!aanrader)
http://timotheegroleau.com/Flash/articles/scope_chain.htm
Flash Player has improved local security, for additional safety when running SWF files on your hard drive.
Dit is even schrikken de eerste keer dat je dat meemaakt, je bent lekker bezig met een project en je maakt gebruik van serverside data. In de Flash IDE werkt de swf helemaal lekker, maar zodra je de swf lokaal opent komt er een melding. Je moet nu aangeven dat je het hele zaakje vertrouwt, de swf opnieuw exporteren in flash en je kan de swf wel gewoon lokaal gebruiken.
You can upload files to a server using the FileReference and FileReferenceList API.
Yeah! Ook eindelijk! Geen gekloot meer met het Yamzbrowsers component, maar gewoon rechtstreeks vanuit je swf 1 of meerdere files uploaden. Dit is te gek en schrapt weer een rede van het lijstje om HTML ipv Flash te gebruiken.
En als laatste toch nog even een design dingetje :
Slice 9 lets you scale movie clip instances without widening the strokes that outline the movie clip. You can access this feature in both Flash Basic 8 and Flash Professional 8 using ActionScript code.
Je kunt nu dmv 9 slices (vlakken) in een movieclip aan te maken, de movieclip zo scalen zonder dat deze uitrekt zeg maar. Zonder dat de lijnen van de movieclip ook meeschalen en opeens veeeel dikker worden, zonder dat de ronde hoekjes van een movieclip opeens niet meer rond zijn.
Dit waren de belangrijkste dingen uit een lijst van 20 punten... Maarrrr we zijn er nog niet! Nu komen de nieuwe classes aan bod :
“Additions to the ActionScript language” heet dat hoofdstuk in de flash help.
New Classes
Ook hier pak ik de belangrijkste en apartste classes eruit.
- Filters
MM heeft een ‘flash.filters’ package toegevoegd, dit is erg interessant want je hebt nu legio mogelijkheden in runtime beeldbewerking.
Zelf heb ik er nog niet heel veel meegedaan, voornamelijk omdat er genoeg voorbeelden online te vinden zijn met verschillende effecten. Ik som hier de Filter classes op, met de beschrijving van de Flash help erachter zodat je zelf alle creatieve mogelijkheden kunt bedenken :
The BevelFilter class (in flash.filters package) lets you add bevel effects to objects.
The BlurFilter class lets you apply blurs to objects in Flash.
The ColorMatrixFilter class (in flash.filters package) lets you apply transformations to RGBA colors and alpha values.
The ConvolutionFilter class (in the flash.filters package) lets you apply matrix convolutions filter effects.
The DropShadowFilter class (in the flash.filters package) lets you add drop shadows to objects.
The GlowFilter class (in the flash.filters package) lets you add glow effects to objects.
The GradientBevelFilter class (in the flash.filters package) lets you add gradient bevels to objects.
TheGradientGlowFilter class (in the flash.filters package) lets you add gradient glow effects to objects.
Samen met de op 'CacheAsBitmap' gaat dit geweldige grafische effecten opleveren.
- BitmapData
De BitmapData class geeft je volledige controle over pixels. De BitmapData class is een array met pixels, en een pixels bij staat uit 32-bit getal. Dit getal is opgebouwd uit vier 8-bit “channels” waardes, waardes van 0 – 255. Deze vier kanalen staan voor de alpha, rode, groene en blauwe waarde per pixel.
In het voorbeeld hieronder kan je zelf een *.png, *.gif of *jpg uploaden dmv de FileReference class. Dit kunnen ook plaatjes met alpha-waardes zijn. Zodra het plaatje geupload is kun je met je muis per pixel de kleur opvragen. Dit kan door de BitmapData class te gebruiken en de method getPixel();
In het volgende voorbeeld wordt een transparante 32 channel .PNG ingeladen, kan kun je met de muis van elke pixel de kleur zien :
http://www.flashfocus.nl/~images/flash8-technical-review/bitmapdata.swf
Wordt er niets ingeladen bekijk het voorbeeld hier (http://www.flashfocus.nl/~images/flash8-technical-review/bitmapdata.swf) dan...
Of laad zelf een transparante .PNG in:
http://www.flashfocus.nl/~images/flash8-technical-review/filereference.swf
- Filereference
De FileReference class, eindelijk! Hoe het precies met rechten en veiligheid zit weet ik niet, maar je kan nu vanuit de flash player toegang krijgen tot de locale harde schijven. Zoals je hierboven kunt zien werkt dit als een trein, hieronder zie je de code :
var _file = new flash.net.FileReference();
_file.browse([{description: "Image files", extension: "*.jpg;*.gif;*.png", macType: "JPEG;jp2_;GIFF"}]);
Je kunt hier mooi een omschrijving meegeven om watvoor files het gaat, en welke files in de browser window zichtbaar mogen zijn, zowel voor de mac als pc.
Door een listener object aan de FileReference instantie toe te voegen krijg je informatie over wanneer de gebruiker een file selecteerd, en als deze file dan geupload wordt door de method _file.upload(“hierjeserversidescript.ext”); krijg je meer info over de progress, wanneer de upload klaar is, enz.
Zo kan je heel nauwkeurig de voortgang van je file transfer weergeven aan de gebruiker.
- Multi-language
Wie niet alleen hobby matig maar ook zakelijk met Flash aan de gang is, heeft vast wel eens meegemaakt dat een opdrachtgever haar website in meerdere talen wilt hebben. Wat je dan kan doen is 3 fla’s maken met 3 verschillende talen in elke fla... Niet echt handig als je wijzigingen in 3 fla’s moet doorvoeren...
Macromedia heeft daar in deze release aandacht aan besteed. Met het zogenaamde XML Localization Interchange File Format(XLIFF) kun je xml files maken die meerdere talen bevat. Met de mx.lang.Locale class kan je de goede taal op 3 manieren in je swf zetten :
automatically at runtime" -- Flash Player replaces string IDs with strings from the XML file matching the default system language code returned by System.capabilities.language.
"manually using stage language" -- String IDs are replaced by strings at compile-time and cannot be changed by Flash Player.
"via ActionScript at runtime" -- String ID replacement is controlled using ActionScript at runtime. This option gives you control over both the timing and language of string ID replacement.
Hoe het precies werkt heb ik nog niet uitgeprobeerd, en als je creatief bent zal het voorheen ook zeker wel gekund hebben, maar het is erg fijn om er nu een standaard voor te hebben wat in Flash zelf zit. Dit bespaart je een hoop geklungel om in verschillende fla’s dezelfde dingen aanpassen. Ik begrijp zo snel dat je aan textvelde, of beter gezegd strings ID’s kunt meegeven. En als je zorgt dat bij een ID in de xml file verschillende talen staan pakt Flash zelf de goede taal eruit.
- External Interface
De External API maakt directe communicatie tussen Actionscript en de container van de Flash Player (bijv HTML met Javascript of een desktop applicatie die de Flash Player embed) mogelijk.
Ook hier word ik ook erg blij van... Iedereen weet dat het altijd een gepruts was omdat Javascript en Flash goed met elkaar te laten communiceren. Nu heb je dus geen moeilijk-moeilijk-moeilijk getest meer met data overgooien tussen JS en Flash, je kan nu lekker callbacks zetten en echte data heen en weer passen. Gewoon Arrays, Objecten, Numbers, Strings zoals ze bedoeld zijn.
Als je nu vanuit Flash een JS method aanroept kan JS meteen een waarde returnen en wordt dit ook gewoon netjes in een callback van Flash opgevangen, en zo ook andersom.
Hier een simpel voorbeeld uit de Flash help :
import flash.external.*;
_btn.onPress = function()
{
var _str = String(ExternalInterface.call("sayHello", "browser"));
_txt.text = _str; //Hey Flashfocus People!
};
Hier het script wat in de HTML pagina staat :
<script>
function sayHello(name) {
alert(">> Hello " + name + ".");
return "Hey Flashfocus People!";
}
</script>
Owja, en dit staat ook nog stiekem in de help ertussen :
Note: Official support has been added for the AsBroadcaster class in Flash 8.
Een aanrader voor iedereen die een beetje geinteresseerd is in OOP technieken...
Video
1 plaatje zeg meer dan 1000 woorden, en 1 video zegt meer dan 1000 plaatjes.. ofzoiets? Toch?
Naja kijk maar :
http://www.flashfocus.nl/~images/flash8-video/video.swf
Klik maar...
De nieuwe Flash 8 On2 VP6 codec rockt dus! Nu kan de concurrentie nog meer aangegaan worden met Quicktime en Windows Media Player, buiten het feit dat Flash 8 transparante video ondersteunt!
De videos hierboven zijn allebei als .avi geimporteerd en daarna weer geexporteerd met Flash. Dezelfde instellingen, uiteindelijke dezelfde bestandsgrootte (4,66 mb) en heel veel verschil in kwaliteit!
Met het enorme kwaliteitsverschil en ondersteuning van transparantie in video ziet het web binnen de korste keren er een stuk anders uit is mijn bescheiden mening...
Transparante video over transparante video, geweldig!
Wat niet echt nieuw is maar nu wel handig in het gebruik is zijn cuepoints. Met het importeren van video in Flash kan je ook cuepoint aangeven met het type ‘event’ of ‘navigation’ en bijbehorende parameters.
Event cue points are used to trigger ActionScript methods when the cue point is reached, and let you synchronize the video playback to other events within the Flash presentation.
Navigation cue points are used for navigation and seeking, and to trigger ActionScript methods when the cue point is reached. Embedding a navigation cue point inserts a keyframe at that point in the video clip.
http://www.flashfocus.nl/~images/flash8-technical-review/videocuepoints.jpg
Bij Flash 8 zit ook een aparte 'Flash 8 Video Encoder.exe' waarmee je allerlei video formaten kan omzetten naar .FLV.
Mobile Devices
Mobile, mobile, mobile... Je hoort het steeds vaker en overal. Voor de meesten nog een ver van je bed show, maar het is dichterbij dan je denkt! Wen er alvast maar aan, mobile wordt hot. In deze release is er veel aandacht aan besteed.
Bij de swf publish settings kun je kiezen voor de Flash Lite 1.0 en Flash Lite 1.1 player.
http://www.flashfocus.nl/~images/flash8-technical-review/publish_settings.jpg
Zodra je 1 van de 2 players kiest wordt een 'device' button in het propertie panel actief.
http://www.flashfocus.nl/~images/flash8-technical-review/properties.jpg
Was het in de vorige versie nog lastig je swf te testen in de Flash IDE, kun je nu uit een lijst allerlei devices en toepassingen selecteren om je swf te testen.
http://www.flashfocus.nl/~images/flash8-technical-review/devicesettings.jpg
http://www.flashfocus.nl/~images/flash8-technical-review/flashlite_ngage.jpg
Zoals je ziet kun je nu kiezen uit erg veel verschillende devices, en elk verschillende device heeft weer andere mogelijkheden met de Flash Lite Player. Buttons werken anders, het geheugen verschilt, de screen size varieerd. De devices worden nu representatief weergegeven. En via een update is het mogelijk de nieuwste devices met instellingen te downloaden, zo blijf je altijd up to date.
Helaas ondersteunt de laatste Flash Lite Player 1.1 alleen nog maar Actionscript 4 en bepaalde dingen van Actionscript 5. Je kan natuurlijk op je klompen aanvoelen dat dit snel gaat veranderen en het niet lang meer gaat duren dat video afspelen via de Flash Lite player op je mobiel net zo normaal is als het nu voor het web is.
Conclusie!
Mijn 'overal opinion' is dat MacroMedia volgens mij deze keer bewust heeft gekozen om niet extreem veel nieuwe features erin te stoppen, maar vooral te concentreren op de kwaliteit van de features die ze er wel instoppen. Flash is en blijft een programma dat design met programmeren combineert, en dat komt in deze versie weer erg goed naar voren. Voor de pure die-hard programmeurs lijkt het misschien allemaal niet spannend, maar ik weet zeker als je er meegewerkt hebt en je alle mogelijkheden door hebt, je zeker onder de indruk bent!
Met het feit dat ze de Flash Player lekker klein hebben weten te houden, en de performance enorm opgeschroefd is, is MacroMedia weer helemaal back-on-track, Thumbs Up!
Ik ben erg positief over deze release, en ben benieuwd wat het allemaal teweeg gaat brengen in de Flash Community.
Okay! Dit was het, hopelijk hebben jullie een beetje genoten, en als jullie zo meteen allemaal heel hard 'MEER! MEEER! MEEEEEEER!!!' schreeuwen komt er volgende week misschien nog een review...