For some developers just need to know that there is a new version of their preferred development package to run and buy the upgrade. Others, and rightly so, maintain a more calm and "pretend" to know the actual upturn in the new version before changing their habits. In the case of Adobe Flash CS3 is not much to wait, given the many changes that have suffered from the package when Macromedia was acquired by Adobe.
Here, then, 10 simple, but important, reasons which, in my personal opinion, enough to convince you to upgrade to Adobe Flash CS3 . I will, of course, only the features that impressed me personally, this is not intended as an exhaustive list of all the many changes introduced with the CS3 suite, only a fly to anticipate some features of CS3.
1. Installation
The installation is nice and fast, compared to previous versions. It includes, among other things, with all Adobe products (Dreamweaver CS3, Photoshop CS3 extended, etc ...) which makes installation / removal and update a real pleasure.
2. Backward Compatibility
One issue often overlooked, but always taken into account in the history of Flash: The ability to manage previous versions of the product. In Flash CS3 has all the tools to migrate that to manipulate both the previous versions of our movies. We find this possibility in debugging (debugging a separate Actionscript 2.0 and Actionscript 3.0) is in the process of completing the movie. Immediately write applications in Flash Actionscript 3.0 may be counterproductive in certain contexts. If your target site has a high traffic you may find that many users have not yet installed the latest versions of Flash Player for your browser and then would not see the movie. However, as already said, Flash CS3 allows to develop Flash applications mantendedo backward compatibility and therefore does not see in this a large ostocalo nell'upgrade of the product.
3. GUI and IDE

The IDE Flash CS3 (like Dreamweaver CS3) has been revised to better. The panels (see figure at left), often uncomfortable in previous versions, have been completely redesigned and now their use is less invasive notevolemente.
Besides the possibility to minimize the panels (see figure at right) is found which makes a real nice interface and functionality. When a panel is in icon mode occupies much less space and with a simple click you can open the first main panel always visible.
All the IDE, in short, was reviewed including the central area with the window for editing and graphic code. Do not you point out any changes or you'll ruin the surprise ...

More ...
One of the strengths of Adobe Flash lies in the choice of ECMAScript (ECMA-products - E uropean C omputer M anufacturers A ssociation) as the standard scripting. ActionScript and JavaScript, in fact, both stem from a higher standard as they are extremely similar. This is one reason why many ActionScript programmers develop very easily in JavaScript and vice versa.
ActionScript has always had a management "double" of events that often has confused some developers. In MovieClip, for example, you can set an event simply by declaring a function to the properties of the event, for example:
Method 1
1 2 3
| ( ) { mio_mc. onRelease = function () { "Click sul MovieClip" ) ; trace ("Click on the MovieClip"); } |
Other objects, in contrast, require a different handling of the event you want to monitor, requiring the classical listener, an object designed for that task. For example the Mouse object can be controlled in this way:
Method 2
1 2 3 4 5
| Object = new Obejct ( ) ; var MouseListener: Object = new Obejct (); ( ) { MouseListener. onMouseMove = function () { "Mouse in moto" ) ; trace ("Mouse in motion"); } addListener ( mouseListener ) ; Mice . addListener (MouseListener); |
The components have a further variant, as the Loader component:
Method 3
1 2 3 4 5
| Object = new Object ( ) ; var loaderListener: Object = new Object (); = function ( evt : Object ) { loaderListener. complete = function (evt: Object ) { "Caricamento completato" ) ; trace ("Upload completed"); }; ( "complete" , loaderListener ) ; myLoader_ldr. addEventListener ("complete", loaderListener); |
Why these differences? The reason, in truth, is very simple. The method 1, the most immediate, is used when the event to "intercept" is unique, that is when it makes no sense to "take" several functions one after all ' other. Methods 2 and 3, however, create the "lists" of "listeners" and are extremely useful and powerful because you can hook up virtually endless functions to a particular event.
The same thing happens in JavaScript and can be seen in libraries like prototype . The convenient method observe (), made available Event object, allows to hook functions in an event of an object. For example:
1
| window , 'load' , function ( ) { alert ( "Finestra caricata" ) ; } ) ; Event. Observe (window, 'load', function () {alert ("Window loaded");}); |
In this case we hooked our function that displays an alert to the load event of the window object. We could only repeat the statement and attach additional event:
1 2
| window , 'load' , function ( ) { alert ( "Finestra caricata - 1" ) ; } ) ; Event. Observe (window, 'load', function () {alert ("Window loads - 1");}); window , 'load' , function ( ) { alert ( "Finestra caricata - 2" ) ; } ) ; Event. Observe (window, 'load', function () {alert ("Window loads - 2");}); |
This feature, also common in ActionScript, is an extremely versatile, in particular in Javascript, was the key to the realization of many "widgets" and extensions (see the classic Snap ) that proliferate in today's Web The ability to queue up, in fact , for events that are already controlled by other functions, can be non-intrusive (Unobtrusive) and then, in practice, to add functions to those already present.
More ...
Latest Comments
Giovambattista Fazioli : @ Nik: I'm happy! Good luck then!
Nik : I have Monday examining information on java, thanks to me you have been very useful, the book I was unclear ...
Mark : Thank you very much, I've lit
I solved it by setting [cc_objc] / / OptionViewController.m - ...
Giovambattista Fazioli : @ Mark: I suggest you think a more correct approach. If you run the subclass of the tab ...
louis : very clear and simple I have to admit that writing a pa hardly use delegates created by ...