Robin,

I am right there with you about the migration from AS2 to AS3.

Basically, as I gather it, packages are pretty much the same thing as the class path in as2 classes. com.exampleClass would become

package com{
   public class exampleClass{
      public function exampleClass(){
         ... code
       }
   }
}

some things to remember. AS3 constuctors cannot be private ( as of yet ). All the declarative classes (<mx:Button or <mx:Array ) in Flex have actionscript analogues. The event model has been completely revamped, too. Instead of using:

myBtn.onPress = function(){
--click functions
}

you use

myBtn:Button = new Button();
myBtn.addEventListener(MouseEvent.CLICK,doOnPress);
function doOnPress(e:MouseEvent):void{
  switch(e.target){
      case myBtn:
         if(e.type==MouseEvent.DOUBLECLICK){
            do one thing
          }else{
            do another thing
         }
         break;
      case homeBtn:
         -- home button actions
         break;
      case menuBtn:
         -- menu button actions
         break;
   }
}

The whole point is to break apart the procedural calls associated with typical actionscript and tie the framework together in an object oriented setting that passes informative event objects to a centralized event processing area. This might seem like a lot of setup work for a small application, but the goal with AS3 is to allow for the complexity associated with rich internet applications in a flash client. Imagine putting a thousand onPress events all over your application then finding out you need to refactor (change) a huge chunk of your code to add another type of functionality. You would have to search through your code in a hundred places on a hundred frames to get the whole thing right. With the new way, your centralized events can be monitored and dispatched in one location You could do this with AS2, but it required some hacking.

The whole MouseEvent.CLICK thing is just a constant in flex with the value of "click". They just wanted to provide a constant based reference to the event name so that developers didn't screw up their app with a typo. The whole e:MouseEvent thing is the event object that gets passed as a parameter when the event reaches its target. You can tell the function to accept e:ChangeEvent or e:WhateverEvent and the event will only active the function if it is the right kind of event. This can help you sort through the different types of events that are available in AS3. You can use that event object to get information about what triggered the event - as well as define custom reactions to the event as it flows through the document tree ( think of the document as an XML file and your button is a node)

I know this 5 second breakdown sucks - and I am just really starting to understand this stuff today - literally I learned this stuff today - so don't feel like you are alone in the dark. Also - if you are a Flex guru with better information - or if I screwed up on my syntax above - I would love to get a reply to correct it.
Thanks
Scott Fanetti

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to