FDT vs Flex Builder features compare

April 23, 2009

I was working with Flex Builder for a long time and recently decided to try FDT (Development Tool for Flash). I’ll review features new for me and features missing from Flex perspective. This comparison will  focus the differences and only for pure Actionscipt 3 coding (no MXML).

Feature Flex Builder 3flex FDT 3fdt
Debugging
Displaying xml structure in Debugger panel displayxmlflex1 displayxmlfdt2
Ability to highlight changed variable value highlight_mini No
Displaying private class members in Debugger panel No Yes
Coding & Refactoring
Code templates No Yes
Advanced code formatter No Yes
Ability to compile project with errors No Yes
Hinting language key words No Yes
Ability to add new method, by typing it’s name on object instance No Yes
Change package name when moving classes between packages No Yes
Hinting package path (crtl+space to fill full package path) Yes No
Unused import management Remove unused imports High light as warning
Automatic imports, comments flooding No Yes
Validate embed resources (path, internal symbols) When project is saved (better) When project is compiled
Advanced syntax checking No Yes
Syntax checking on save on t he fly
Replace Phrase in whole project No Yes
Ability to run application in standalone debug player Yes Yes
Create constructor when creating new class Always Only if class extends another class
Displaying package structure packagedisplayflex1 packagedisplayfdt
General
Profiler Yes No
Stability Unstable – I can’t even say how many times I got ‘internal build error’ and have to restart Flex. Very stable
Speed FDT is a little bit slower (ex. It takes a little bit longer to display list of variables in debugger panel, etc.)

As we can see above each application have it’s own cons and pros. Both of them have nice unique features. Definitely the best choice would be just to mix of both. At the moment FDT is my choose, mainly because of templates support and stability although I regret  it cannot display xml data in debugger view the way Flex does.

Flex builder running applications in Projector (Standalone FlashPlayer)

February 18, 2009

Personally I don’t like to run/debug/profile applications in browser. Sometimes few tabs are opened in browser, sometimes browser may even crash. Projector  or Standalone FlashPlayer is desktop application allowing you to run swf files. There is a way to use projector to run/debug/profile your Flex projects (projects created in flex – flex project or actionscript project, etc..).

I have tested this on windows but on mac it should be the same.

First of all you have to download projector from Adobe webside. Sine it will be also used to debug applications you should download debug version – Projector content debugger (EXE)

http://www.adobe.com/support/flashplayer/downloads.html

Then you have to download projector exe file somewhere to your hdd. After you save projector exe you’ll have to ‘register’ it into system registry by simply running it (it will register path to default application witch will be used to open swf files). Now each time you’ll run swf file it will be launched in this specified projector, so make sure you won’t move this projector  file.  You can use this ‘relation’ ex for changing projector versions witch will be used to run/debug/profile your project.

Now go to Flex and create new project. Go to Run menu -> Run -> other

other1

Double click on Flex Application to create new run configuration. Select newly created  configuration and Uncheck use defaults. Now just change .html extension to .swf in all 3 paths (Debug, Profile, Run) and click Apply.

configuration

Now each time you’ll run/debug/profile you project it will be launched in projector. The downside is you’ll have to change those settings separate for each project.

There is a Bug (on Windows Vista) – sometimes after clicking on configuration you won’t see right window content. There isn’t 100% working solution, but there are few things you can try.

  • Try to change width by dragging ‘center separator’ (try to open whole run configuration window few times and drag).

drag

  • Try to run Flex in Compatibility mode right click on FlexBuilder.exe (default path is C:\Program Files\Adobe\Flex Builder 3) , select properties, go to compatibility tab, select run program in compatibility mode, and choose Windows XP
  • Try to disable visual themes for Flex (compatibility tab as above)

Watch Full HD movies on you laptop

January 13, 2009

Yes – it’s true you can watch Full HD movies on relatively week mobile pc. You just have to download Windows 7 Beta 1 (expires on August 1, 2009).

Windows 7 Beta Customer Preview Program

My configurration is Intel Core 2 Duo T5250 – 1.5GHz with Intel 965 Graphic Card (It also works on Intel Core 2 U7500 1,06 GHz). Movies work fluently without any problems.

I have just installed Vista Codec Package 5.09

Debug Flash/SWF connections

December 3, 2008

Debugging conections is all about to see what http requests where made, what data was sent/recieved…

Webside

Here you have two options:

  • Local proxy server. Basically you configure your browser to use proxy for default Internet connection and all requests goes thought proxy to Internet. There is nice free proxy server called Fiddler. If you do not want your proxy run all time, you should have possibility to change connection setting quickly (proxy / no proxy). There is FireFox add on called FoxyProxy witch allows you to switch between different proxies. If configured correctly it allow you to disable/enadle proxy by one mouse click on FireFox statusBar.

foxyproxy

  • FireFox addons – my favorite is Firebug. Make sure cache in FireFox is disabled (becouse when file is cached you won’t see any connections).

Desktop

Lately I have discovered that Flash CS3 is using system settings for Internet connection. It means that you if you change system proxy (control panel -> internet settings -> connection -> Lan Settings -> proxy) for your proxy server flash CS3 will use tour proxy and you’ll be able to review all connection made from your application.

Generate Actionscript 3 code with Eclipse Monkey (Flex Builder)

June 1, 2008

Writing getters, setters, handler functions and even consts takes time. After working for a while I got feeling that this process can be automated. Lately I have discovered Eclipse plugin called Dash (thanks to eokyere). It contains Eclipse Monkey witch s a dynamic scripting tool. Scripts (written in Javascript) can be used to generate Actionscript code directly inside FlexBuilder. Unfortunately it will work only with Actionscript projects (won’t work with Flex projects).

Watch quick demo

Instalation

  1. Inside FlexBuilder to to Help-> Software Updates-> Find and Install
  2. Search new features to install
  3. Add New Remote Site (enter name and url (http://download.eclipse.org/technology/dash/update)
  4. Click finish to check for updates and install Eclipse Monkey
  5. Restart Flex Builder
  6. You should see Script menu
  7. File -> New -> Other… -> General -> Project
  8. Enter project name ex. Eclipse Monkey Scripts & click Finish
  9. Create script folder inside this project and copy scripts
  10. Now all scripts should be available in Scripts menu – if not select Eclipse Monkey Scripts project and press F5 (or right click on project -> refreash) to refresh it

Scripts

As you have seen on the video I have already created few scripts for Generate Event Handlers, Generate Properties and Generate Consts. I also have two scripts from Konstantin Kovalev blog.

Actionscript Code Generate Scripts (Eclipse Monkey)

Additional Resources

Usage Info

Eclipse Monkey help

Creating Scripts

Creating a new Eclipse Monkey script

Scripting Eclipse with the Monkey

Documentation

Eclipse Monkey/Javascript Editor doc

Eclipse Platform API Specification (org.eclipse.jface is important)

Javascript doc

Other

Script Exchange

Bug in addChild method

May 31, 2008

Yesterday I have discovered that addChild method of DisplayObject is not working as expected. While adding new child to displayList it ignores override for width/height getters.

It can be very confusing. Imagine you have image gallery witch displays images in row. Now you wanna mask 3 of them to make only 3 of them visible at time and create some scroll. If you are using some advanced layout system (let’s say you wanna center your image gallery) natural step it to override get width/get height properties, so mask size will be returned instead.

Here is Code Sample


Follow

Get every new post delivered to your Inbox.