Something to allow "Writing flex without ActionScript", or "Java to AVM2 compiler", or "Write Flex using Java" exists? - apache-flex

There are many dynamic languages that target Sun's JVM (Groovy, Scala, Jython, Jruby etc) and I was sure there are many that target Adobe's AVM as well. But I was surprised to find only Haxe do something similiar. related question on this site
I think the eclipse e4 SWT project doesn't compile to ABC (ActionScript Byte Code) directly, but first converts Java to AS3 and then the Flex compilter does the rest.
Could it be that no one yet wrote a simple Java / Python / Scala AVM2 compiler that can be used as an alternative to the proprietary Adobe Flash Builder (formerly Flex Builder)?
I don't mind paying Adobe for a fine producy, but writing Java in Eclipse is so much faster and convinent than the half baked Adobe plugin suite. are there really no efforts other than Haxe?

Here you go: Compiling Java and C# to SWF

I don't mind paying Adobe for a fine
producy, but writing Java in eclipse
is so much faster and convinent than
the half baked adobe plugin suite.
mxmlc (the Flex compiler) is free and open source and available as part of the Flex SDK. It compiles actionscript 3 to swf. If you want an IDE with the same level of support as writing Java in Eclipse then you will want FDT which unfortunately isn't free but is far superior to Adobe's Flex/Flash Builder. You could also use Flash Develop which is a very capable and free IDE for flash development.
AS3 is a nice language in it's own right and can compare favorably to Java (although some newer Java features like generics are sadly missing). So learning it wouldn't be "re-inventing the wheel" so much as adding another bow to your development skills quiver.
But if you are insistent on wanting to write Java code and produce swf files then I think that Joa's work that James linked to above is your best bet. I'm not sure if he has released all the parts publicly yet though...

I found out that adobe started to do something similar (but for C++): http://labs.adobe.com/technologies/alchemy/
Also this one (C# compiler) but it seems to be obsolete:
http://blog.bluetubeinteractive.com/2005/05/c_to_swf_compil.html
And there is an apparently abandoned Java Implementation: http://osflash.org/j2as
But I'm still looking for a working Java to AVM2 implementation...
Anyone? :)

Related

Does Adobe Flex have the ability to compile into HTML/JavaScript?

I'm fairly sure I know what the answer will be here, but since I recently stumbled across Apache FlexJS: https://blogs.apache.org/flex/entry/apache_flexjs_0_6_0 I thought I would double-check.
Is there a way to compile Adobe Flex applications into HTML/JavaScript, using the Adobe Flex SDK? I have done some digging and this new development on the Apache Flex project seems to be the only path forward in that respect.
In theory yes, as described on the schema of https://cwiki.apache.org/confluence/display/FLEX/FlexJS : you get the same source code and can compile it into HTML/JS or SWC.
However, in practice you will get issues because the component library is currently very limited in HTML/JS.

Flex SDK or Adobe Flash?

I am looking to get into Flash game development (coming from XNA), but I'm not so sure I'm willing to dish out for the pricey Adobe Flash software. I've noticed there is the free "Flex" SDK.
What's the difference? Would I be able to develop a Flash game using the free Flex SDK and submit it to a game portal in the same way I would, if I had developed a Flash game using Adobe Flash?
If you use Windows, FlashDevelop may be an option. It is free and open source.
I believe you can use it in conjunction with the compiler that comes free with the Flex SDK from Adobe, also to compile ActionScript projects that doesn't include the Flex component framework, in other words, to develop stuff like games and such, in pure ActionScript, rather than Flex based RIA's.
There are 3 different things here, I think.
The platform in itself : the flex sdk is a compiler that targets the flash player, and is perfect for game development, and you won't have any problem to submit a game developped this way.
The IDE : If you are a programmer you'll be disappointed by Flash Professional, which is clearly aimed at graphists. That leaves you with 4 main options : Flash Builder, the IDE offered by Adobe, FDT, developped by PowerFlasher, FlashDevelop which is free and open-source, and IntelliJ which now has decent AS3 support. Or, you can of course develop in any text-editor and compile with the Flex SDK
The framework : for game development, you probably don't want to use the flex framework, which is rather heavy and won' bring much in terms of functionnality.
There are a number of confusing* terms surrounding your question:
Flash - An interactive content development tool that has lots of vector drawing and animation capabilities, can incorporate interactive elements programmed in ActionScript, and publishes to SWF files.
Flash Player - A browser plugin that runs SWF files.
Flex - A framework for developing rich internet applications by programming in ActionScript and laying out UI in MXML.
Flex SDK - A set of freely downloadable compilers for ActionScript and MXML that generate SWF files.
Flash Builder (formerly Flex Builder) - An IDE sold by Adobe for programming ActionScript code.
Flash Develop - An open source IDE for programming ActionScript.
Long story short, a "Flash game" is a SWF file that runs in the Flash Player.
*Most of the confusion is because Adobe purposely made the terms confusing. Part of the problem is that they occasionally change things, like when they renamed Flex Builder to Flash Builder or when they changed Flex SDK from an IDE to the underlying compilers (and actually I'm not even entirely clear about that last one.)
I have used FlashDevelop earlier..
FD IDE great for AS3 developement..
Even they support Haxe which is one more open source programming language..
You can compile a Haxe program to a .swf file. Haxe can compile for Flash Players 6 to 10.
http://haxe.org/doc/intro
I think you should try Haxe and you will love using the FlashDevelop IDE as well.
You can:
1) use Flex SDK to compile pure AS3 code, which is convenient. It helps organizing your code and debugging, unlike Flash CS.
2) if you are making a game that involves a lot of drag'n'drop, GUI manipulations and so on, I would recommend the Flex Framework.
I have seen flex used well for games, altough it requires a bit more ground work in terms of sprite and cast organisation. Making games even in flash mx and 2004 was an absolute breaze, it really depends on the nature and complexity of the game, I find making games a little easier in the old flash 8 workflow, if we are talking cheezy pop cap games, but I have seen many casino's do perfectly decent work in flex on gaming engines.
As someone who also comes from a heavy MS dev background having gui dev tools is a plus once you have used RAD Tools you will never go back to linux style text editing and tools.
Flash Builder (flex 4) is a very very nice tool compable to visual studio in allot of ways.
Altough if I were to describe Flex Builder the workflow is identical to VB 6 its like VB for the web, except instead of vbscript you got a full oop language instead.
I would recommend using it (even in 60 day trial) I would recommend it.
I have seen some very good flex game engines even a port of quake 2, so depending on how sexy you want to get it can handle very well.
I know am replying late to this question, But just wanted to add my view on Flex 4.6,
Its wort upgrading to Flash builder 4.6 where mobile development on Blackberry, Android and IOS is supported. Its much simpler to develop and build applications for mobiles using Flash builder 4.6.
You can also refer to
http://www.adobe.com/devnet/flash-builder/articles/whatsnew-flashbuilder-46.html
http://www.adobe.com/products/flash-builder/features.html
Flex isn't really for games. It's more for RIA (Rich Internet Application), which isn't really the same thing.
You can program against the Flex SDK itself, and it's free, but you'll be 1/10 as productive than if you use Flash Builder. It does a whole lot for you. But, anyway, I think you should look into Flash development - not necessarily Flex.

Can i use flex without Flex builder?

i am starting to study FLEX. i have only flex sdk. So can i start study only using that. If so please suggest me the link to go through..
But still, Using an editor will minimize our work and will create the code by its own. So as a new learner it would be tedious to understand and also hard to learn new things...
Yes.
Just a bit of background: Flex Builder (a.k.a Flash Builder), the mxmlc compiler (free) and Flash CSx all compile Actionscript code into SWF files and/or AIR files. Flash CSx is a design-centric tool with a ultra-simplistic coding editor built in (not much more useful than Notepad); Flex Builder/Flash Builder is a full-blown programmer's IDE (based on Eclipse); the mxmlc compiler is a free command-line tool that compiles Actionscript files into SWF and AIR files. (You have to use your own editor to write the source files.)
MXML is an xml language that acts as a shortcut for Actionscript. You can code in mxml instead of Actionscript and the compiler will convert your mxml into Actionscript before compiling. You can't use mxml as a shorthand for all AS coding. Mostly you can use it as a substitute for UI coding and as a way of binding data to UI elements. The compiler converts the mxml into Actionscript classes and then compiles the Actionscript classes (the ones created as mxml and the ones coded natively in Actionscript) into bytecode. The Flash virtual machine (e.g. the browser plugin) runs the bytecode.
Currently, you can code both Actionscript and mxml -- and then compile using Flex Builder/Flash Builder or the mxmlc compiler (which is free). Flash CSx can does not understand mxml, so you it can only compile straight-forward Actionscript.
Note: there are third-party tools, such as FDT that can also be used to write and compile Actionscript and mxml.
The language Actionscript has been revised several times. After a brief phase when it was a proprietary language, it morphed into something much like Javascript. Then, with AS 2.0, it became much more like Java -- and it continues in this direction with AS 3.0. (its syntax is very similar to Java and, like Java, it is class-based).
There are a core set of Actionscript classes that are available to you in Flash CSx, Flex Builder/Flash Builder and the free sdk. There are additional classes, known as the Flex Framework, which are available to you in Flex Builder/Flash Builder and in the sdk -- but not in Flash CSx. These extra classes add new visual components, such as a datagrid, an advanced UI-layout engine, and a framework for data-binding.
You can use the Flex Framework without the Flex Builder IDE (which is going to renamed, in the next version to Flash Builder).
Compiling without Flex Builder
You can also use Flex Builder/Flash Builder without using the Flex Framework -- meaning you can program in the IDE and use only Actionscript classes that aren't part of the framework (the classes you'd use if you programmed in Flash and not Flex Builder).
You can choose to use or not use mxml.
You can even use mxml to auto-generate Actionscript that's not part of the Flex Framework (e.g. your own custom classes).
Using mxml for your own classes
Good luck!
my Actionscript blog
If you are a student, you can get Flex Builder for free.
Free for students
I like FlashDevelop # http://www.flashdevelop.org/
Open source editor for Adobe Flash/Flex for Windows (may work under Wine?).
You can certainly build application with solely the open source Flex SDK. I have posted some instructions for using only the Flex SDK on Linux. If you are on a different platform the instructions can be slightly adjusted.
Yes, you can use any text editor to write MXML and ActionScript code, and then use the command line to compile the code into a SWF (Flash Movie). The SDK does not include Charts, however.
http://opensource.adobe.com/wiki/display/flexsdk/Downloads
If you're on Windows, see if you can run mxmlc.exe (the compiler) from a command prompt. Create a simple Example.mxml file to test it out.
mxmlc.exe Example.mxml
Here's a simple Hello World mxml source code.
Easy steps are well documented on Adobe's site and in chapter 2 of "Flex 3 in Action"
Flex Builder (now Flash Builder) is based on the Eclipse IDE - it's actually a plugin to Eclipse. So with Eclipse being open source and free, you can use that as your editor.
You won't get the integrated debugger, and visual design view... but using some free plugins you can still be productive.
1) You'll need the Flex SDK: www.adobe.com/products/flex/flexdownloads/
2) Get Eclipse: eclipse.org/
3) Two notable Eclipse plugins:
- www.eclipse.org/webtools/
- www.aptana.com/studio
Alternatively, if you have MSFT's Visual Studio, there's a Flex plugin for that too:
- www.sapphiresteel.com/Adobe-Flex-Development-in-Visual
To compile your code you'll use the Flex compiler, information on how to use it can be found here:
www.adobe.com/livedocs/flex/3/html/compilers_13.html#150640
Chapter 2 of Flex 3 In Action also has a section on how to develop Flex applications without Flex Builder:
http://www.amazon.com/dp/1933988746/?tag=insidemark-20
Note that Flex Builder is free for academic faculty, students, and out of work coders. So that's another option.
Cheers.
Flex Builder will be the very best way to learn as its got a debugger and thus lets you step thru code see how it works. FlashDevelop is free tho it lacks a debugger - still very useful
Intellij actually has pretty good support. AS3 support is wonderful, but there is no WYSIWYG tool.
Still, it is not a problem for many programmers, as MXML is easy to read and edit without WYSIWYG.

What are the Pros/Cons of Flash Builder vs. FlashDevelop?

I want to play around a bit with FLASH for app development. I'm looking for a good IDE for that. Someone suggested Flash Develop.
Flash Builder
Pros
better debugging and profiling
visual designer for MXML
because of Eclipse: support for other languages (eg. with Aptana, PDT...) and usage of plug-ins for the Eclipse Platform with features not shipped with FlexBuilder (code snippets with CFEclipse "Dynamic Snippets", "auto-code" for getter/setters with Monkey scripts...)
support of virtual folders/files (links to external files/folders handled intern by Eclipse, so also working on Windows)
refactoring (renaming of classes, functions, properties with automatic changing of dependencies)
Cons
Commercial license
Big and because of Eclipse problematic with newer Eclipse versions for the FlexBuilder plug-in version (eg. not working with Eclipse Ganymede 3.4.1)
adding and configuring the missing features with Eclipse plug-ins needs time and searching in the Internet (which plug-in? settings etc.)
Code assist only average and sometimes buggy eg. if correct imports are missing ("java.lang.NullPointerException")
missing of a code formatter or automatic get/setters (but there are solutions with other Eclipse plugins like Monkey Scripts, CFeclipse, Flexformatter "FlexPrettyPrintCommand"...)
sometimes a bit sluggish if background tasks in Eclipse are working
no package explorer
AS2 and AS3 only - no Haxe
FlashDevelop
Pros
free and Open Source (developed with C#)
lightweight and snappy
best available Code Assist for ActionScript
supports all flash languages - AS2, AS3, haxe
"auto code" for automatic getter/setter, variables, code for event handlers
code snippets with integrated snippet editor
extendible with plug-ins
support for asdoc comments
package explorer (show classes, symbols from a SWC file)
basic refactoring
multiple source code folders per project
useful plugins : ANT integration, SWC creation, mini map, quick navigate
Cons
only for Windows
no visual designer for MXML
no support of virtual folders/files inside the project
weak refactoring
changing classpaths must be done manually
plug-ins often not working in newer versions and many plug-ins are only rarely updated
limited support for debugging Haxe applications
Common
Pros
projects for full range of flash apps : websites, AIR (desktop, mobile)
debugging of FP/AIR apps with breakpoints and stepping
debugging with watch windows and locals
support for ASDoc comments
automatic adding of imports and organizing of imports
class wizard
SVG/GIT integration
Cons
no editing of graphics or animation (use Flash IDE for that)
Summary
For debugging, visual design of MXML forms : Flash Builder
For coding AS2/AS3/Haxe projects under Windows : FlashDevelop
Major reason to use FlexBuilder: has a real debugger you can set breakpoints and single step and watch/edit variables.
Unless FlashDevelop has .. developed .. don't think it got any of that yet.
BTW - if you are a student/teacher FlexBuilder can be had for free
Flex builder has a design view for MXML so you can build more visually. Flashdevelop on the other hand is free!
I've been using Flash Developer. Trying now FlashDevelop. FlashDevelop is fast and light, and I'm trying to switch just because of that.
I'm using HG + TortoiseHG for source control. I have 2 screens, so having external source control is not a big problem. Also the IDE stays a little cleaner by not having all the little source control icons.
DesignView helps with not having integrated design.
Also, I can debug with FlashDevelop and see the variables. I'm using FD3.2.1.
Along with what was already mentioned, Flex Builder has some nice tools that helps a developer to learn how to create a data enabled Flex application in form of the Data Wizards and also a nice web services introspection tool that automatically creates an ActionScript 3 client for a web service.
I'm using the new Jetbrains IntelliJ 8, and it's great (especially if your used to java developement). Has a lot better XML/JavaScript editors that any other IDE.
The latest version of IntelliJ also has a good flex/javascript debugger.
Here are two objective contrasts between FlashDevelop (with the Flex 3 SDK) and FlexBuilder. First, only FlexBuilder includes AdvancedDataGrid. Second, FlashDevelop has no source control integration.
AdvancedDataGrid is not included in either the free or open source Flex 3 SDKs; if you want it, you have to buy FlexBuilder. (I assume it is probably possible to use it via another SDK if you possess FlexBuilder.)
FlashDevelop doesn't have any source control integration, FlexBuilder possesses the existing, stable source control options for Eclipse. This includes Subclipse for SVN, as well as a lot of other things. As a longtime Visual Studio and Emacs user, in FlashDevelop I'm beginning to feel unsatisfied with leaving the editor to check in.
Flash Builder, even in version 4.5, has primitive, useless syntax coloring and customization features. From a 700$ package I was expecting at least what I can do with my free text editor.
In the syntax coloring preferences, there is a total of 6 keywords, and you cannot add any custom one.
How am I expected to code having variable names, function calls, and classes look exactly the same?
I will stick to Flash Pro CS5.5 and SciTe.

Is Flex development without FlexBuilder realistic?

Is it realistic to try and learn and code a Flex 3 application without purchasing FlexBuilder? Since the SDK and BlazeDS are open source, it seems technically possible to develop without Flex Builder, but how realistic is it.
I would like to test out Flex but don't want to get into a situation where I am dependent on the purchase of FlexBuilder (at least not until I am confident and competent enough with the technology to recommend purchase to my employer).
I am experimenting right now, so I'm taking a long time and the trial license on my Windows machine has expired. Also Linux is my primary development platform and there is only an alpha available for Linux.
Most of the documentation I've found seem to use Flex Builder.
Maybe I should use Laszlo...
IntelliJ IDEA works as a Flex IDE, if you happen to also be a Java developer. It's free if you contribute to open source projects.
Check out FlashDevelop for Windows. I like it better than Flex Builder.
I've been using Flex since version 2 and Flex3/BlazeDS since it came out of beta. I also have some experience with Lazzlo and the difference is day and night (Flex rocks!). I have not regretted once using Flex. Regarding FlexBuilder, it is worth every penny. While it is completely possible and reasonable to write Flex application without FlexBuilder, the productivity gains of using it will more than recoup the investment. Try the evaluation for 30 days and compare it to some of the other options suggested about (I'm going to try FlashDevelop).
Some things you get with FlexBuilder include:
Code completion
Visual editor
Debugger (it is fantastic!!)
Profiler (also very good)
Regarding Linux, the alpha version of FlexBuilder does not have a visual editor. Other than that, I understand it is reasonably feature complete, still free, and many of the Adobe employees I've talked with that use Linux are happy with it.
FlashDevelop is really easy to setup with the Flex SDK. Just download FlashDevelop, then download the Flex SDK. In FlashDevelop go to Tools > Program Options > AS3Context (under Plugins) > Set the "Flex SDK Location" to the root of the folder you extracted the SDK to and build away. FlashDevelop even has a basic MXML project that will get you going.
If you use ColdFusion for the backend, having FlexBuilder in Eclipse and CFEclipse can mean one less IDE to have to get familiar with.
I'm going to join the choir here and say FlashDevelop for an alternative. The only reasons you might want FlexBuilder are:
Flex charts
Step-through debugging.
Profiler (I haven't used it)
Visual style editor
However, the code-completion and general bloody-awesomeness of FlashDevelop's code-completion and syntax highlighting knocks the gimpy eclipse crap out of the water. So, pretty much what Todd said, except for the code-completion part. Flex Builder is very flakey in that department.
Short answer: Yes
I'm working on a team of developers and designers. We code our .MXML and .AS in FlashDevelop 3 and our designer creates .FLA with skins and widgets that get [Import()]ed in ActionScript.
I wrote a little more about this subject here:
Flash designer/coder collaboration best practices
I have been using FlashDevelop for along time (4/5 years), I am actively using it to develop Flex4.5 applications, it has built in support for code completion, it has a profiler and a debugger that work excellently. The IDE itself is responsive and require the .Net framework, in fact here, I'll list some stuff.
FlashDevelop Pros
Free IDE
Code completion feature
Very capable Debugger
Profiler
Documenting
Ability to build Air / Flex files
Templating
Plugins
FlashDevelop Cons
Lack of UI desing support
.Net support only (Won't work with Mono)
Everything else is pretty simple to get running with, the instructions are available at http://www.flashdevelop.org/
Absolutely. I've been a Flex developer since Flex 2 and until recently I've used my regular editor, TextMate, for coding and Ant for building. TextMate has some good extensions for ActionScript and Flex coding, but I think you could get that for any decent editor.
What's been missing from my setup is a usable debugger, the command line version is a pain to work with. Because of that I've been starting to use FlexBuilder on the side, using it in parallel with my regular setup.
Having a profiler doesn't hurt too.
I've been using FlexBuilder for awhile now and just started to switch to using Eclipse with Flex SDK. I work for a non-profit so the word FREE is huge.
Initially, it is fairly intimidating so if you have the money, you might want FlexBuilder.
There is a lot you need to know and do if you use the SDK. The learning and experience may pay off though... I am still undecided myself.
I second FlashDevelop. You don't get the visual design stuff for the MXML, but for the code (both MXML and AS) it's excellent.
I also use FlashDevelop when working on AS3 projects. For me, the ugliness (UI design) and sluggishness of Eclipse/Flex Builder is enough of a deterrent to stay away from Flex Builder.
In addition to the weaknesses of FlashDevelop pointed out previously, one of my biggest gripes is that it is not a true .NET only app and therefore will never work in mono and therefore can not be easily ported to the mac - which is my platform of choice for development web/javascript/AS3 development.
Amethyst is also a pretty good option to try. It is a plugin for MS Visual Studio, and takes advantage of a lot of the goodies there. It is significantly less sluggish than FlashBuilder, has a really good debugger, and a decent visual designer as well.
The personal version is free, but quite crippled. You have to buy the pro version after a 60 day free trial. However, it is (at time of writing) almost 1/3 the cost of Flash Builder.
As an added bonus you don't need to pay for Visual Studio since it works with the free (albeit hard to find) "shell version (integrated)" of Visual Studio. It won't work with any of the free Express editions, though.

Resources