Choice for multi-platform application development - actionscript-3

I like actionscript very much and did a project with Apache Flex 4.12. Originally my mobile application was built in mxml and the performance was awful. Then I rewrite the application with single line mxml file and the rest of the project in pure as3, the performance is much better.
Now I have another project, it is an multi-platform informational application with some e-commerce capabilities target on both desktop and mobile platform and need to decide, on performance/flexibility/scalability wise, should I stick with Flex (mxml) / Flex (pure as3) / or Pure AS3 with Starling+FeathersUI+as3-signal?
I was thinking to shift into the Starling approach, however I see improvements from the Flex 4.14 release, anyone can give me a direction that which approach is more promising in long term?
Sorry for my bad English as I am not a native user. Thanks.

Please look into Haxe (www.haxe.org) and OpenFL (www.openfl.org) as an alternative to Starling.
Haxe is a programming language that is very similar to action script 3.
OpenFL - open flash library is a framework for Haxe programming language.
The benefit: of Haxe + OpenFL are:
Astounding performance
Fast and easy development
Non-existing learning curve for AS3 programmer ( you might need to spend 10 min learning about loops and casting though )
99% same API as the Flash API
I don't recommend Starling because: it's still AIR and you won't want it, the performance is below average, you'll need to re-write your whole code-base for Starling, you won't be able to port your game outside of Starling without rewriting it again and the fact that you won't be able to compile to many different platforms other than the currently supported ones.

Related

Building an Air app for desktop#2015, any disadvantages?

Since I'm familiar with AS3, I'm planning to build a desktop app using Air, and I'd like to not run into limitations, I never developed a full blown app for desktop using Air, only small apps and others for mobile.
The idea of this app is to be similar to an IDE, with some visual management, think of the design view of Flex, something like that. But not that big, a smaller/reduced version of that.
I'm asking this because I don't remember seeing any app like that built in Air, and I wonder if there is a good reason, or not.
If for example someone says: "use Java, its better", please tell me why, and more importantly, what things I can do in Java for desktop that Air just wont allow me to.
IMHO AIR is extremely powerful and if you combine Stage3D + Native Extensions you can do almost everything with a good performance. I have been working in several projects for desktop, iOS and Android and using Starling + Feathers + Robotlegs + creating my own native extensions (plus there is a lot of free/open source/commercial) was possible to achieve all my (and clients) goals.
Also, there is a huge (ActionScript/AIR) community sharing knowledge and helping each other, several open source frameworks (for games, 2D, 3D, animations, GUI).
I have tried Objective-C, Swift and Java and of course, there is a lot of positive points, native performance, powerful IDE's, GUI integration, native components, etc.
It's a mix, if you need to have your app running in multi platform, I believe Adobe AIR is a good option, if not and you have the necessary knowledge to work using Objective-C/Java, use native.
Of course, it's all relative, I'm just trying to share some tips.

Is there any way to run two instances of flash professional debug

After already searching the site for the answer to the question, I've found this:
Is it any way to run two instances of debuggers?
I need the Flash Professional CS5.5 version of the answer to this question.
Basically - I need to know if there's a way to debug 2 different .fla files in Adobe Flash Professional CS5.5 at the same time. One of them implements the Adobe AIR framework (for using the SocketServer class), the other is a standard AS3 project. It'd be nice if I could debug the client-server interaction easily using the IDE rather than using extensive means to do so.
Anyone have any ideas? Thanks.
This is not an answer to your question but a suggestion to take a different approach.
The Flash IDE and it's debugger are inadequate but for most trivial programs. Variable inspection and breakpoints work randomly and it's next to impossible to drill down into more complex objects. Flash IDE is all right for creating the visual resources for Flash programs but for any serious coding, it just falls on its face. The compiler included with the Flash IDE is also very poorly written and generates unoptimized code.
I'd suggest to switch over to using FlashDevelop - it's a free, open source IDE that runs on top of the Flex and Air SDKs and uses a better compiler that performs more optimizations. (You can mark functions for inlining, etc.) The debugger - while not Visual Studio - is much, much better than the IDE: breakpoints work and object properties can be inspected easily.
Because FlashDevelop is geared towards coding, you can create a project in it with multiple source files, define your resources and then compile to multiple platforms. Compilation is usually fast with hundreds of source files (don't import every type in every package) and you can do debug/release builds. If you can port your code from Flash to FlashDevelop, you'll have a much easier time managing your project.

ActionScript 3 IDE which provides tools on Graphical Interface as well as Code

This is my first post on Stack Overflow.
Are there any IDE's for ActionScript 3 which can provide the following:
-Graphical Interface for drawing
-Writing code with good debugging, dynamic feedback, refactoring etc
I have recently rekindled programming flash games in ActionScript 3 and am using Flash CS3
as it provides means of drawing my graphical objects and writing the code.
I have noticed that:
1. Debugging is not particualr great
2. No dynamic feedback whilst programming (suggestion or auto populate)
3. No refactoring etc
I have looked into other IDEs such as Flex Builder and even looked at plugins for my favorite
IDE's such as Eclipse and IntilliJ but have not found my answer. They tend to talk heavuly about
how they provide good coding tools but not much, if any, tools on the graphical side of things.
It would also be ideal for me if what ever IDE I use I am still able to migrate the entire project
so that it can still be opened usign CS3. Additionally, I am a Windows user.
At the moment I am contemplating drawing my sprites in CS3 and doing the code in another but
surely there must be an easier, perhaps more sensable approach?
Many thanks in advance for any help.
No, there is no IDE like that, and given the decreasing popularity of Flash it's unlikely that something like that will ever be developed.
The coding environment has improved quite a bit in newer versions of Flash Pro, but it still doesn't approach anything like Flash Builder or FlashDevelop. It's not uncommon for people to create graphics in Flash Pro and do coding in another editor.
This is easy. FlashDevelop for code. Flash IDE for graphics. You may want to graduate to CS5.5 or CS6 (if you can find a copy)if you want to go mobile. Otherwise CC.

What is the limitation of Actionscript 2.0?

I would like to know if you have ideas about the LIMITATION of AS2.0? I've done some research about the difference of AS2.0 and AS3.0 but I need to have a clear understanding about the limitation of AS2.0 in order for me to confirm that AS3.0 is superior than its predecessor before I continue my study in AS3.0. Thank you.
I used to develop games in ActionScript 2. I was very resistant to ActionScript 3 when it came out - I didn't even touch it until about 2 years after it was released.
When I finally did make the effort to learn it, I became frustrated with myself for not learning it sooner. It was so much cleaner and more powerful. I was able to create actual libraries for future projects as I worked, and download libraries for things that I didn't have the brain to develop myself, like physics.
It is extremely beneficial for you to learn ActionScript 3 - first off, lets look at what's happening with the two:
AS2 is being removed from future releases of Flash.
AS3 is still being worked on. A noteworthy example of this is the recently developed Stage3D API, which grants extremely efficient rendering for Flash.
Here are some core advantages of AS3 vs AS2:
It's object oriented. This is almost mandatory when working with large applications or games.
Because of this, there are hundreds of libraries available for AS3 that cover things like physics, particles, animation, MVC concepts, rendering improvements, etc.
Much nicer to use.
Easier to extend your knowledge once you get a grasp of the basics of object oriented programming.
It performs a lot better.
Easier to recycle code for future projects.
Learning ActionScript 3 will greatly improve your chances of being able to pick up additional popular languages like C#, Java, PHP and so on.
Much easier to find support - take a look at the quality of answers on Stack Overflow between AS2 and AS3.
You can create AIR applications, which can be built for iOS and Android devices.
The only reason you need to care about is that it's an obsolete language. Don't waste your time with AS2. There's a quantum leap from AS2 to AS3, not only in terms of what you can do, but in terms of the quality of the language itself.
As someone who made the transition in 2007 to AS3 (after using AS2 since 2000) here are the main advantages:
Speed. When it was released, AS3 was 10 times faster than AS2. Today considering all the new features Adobe is introducing like Native Extensions, it's a lot faster than that.
Publishing to mobile or dekstop apps. Face it: browser Flash is slowly dying.
New features such as Stage3d or StageVideo.
Learning AS3 will make you a better coder
AS2 is no longer supported in Flash Professional, so if Flash Pro is part of your design cycle or you ever want it to be, that's obviously a big limitation. (Adobe has said that the Flash Player will continue to support AS2, though, so if you don't use Flash Pro to develop you can still get by).
In terms of functions/behaviors that exist in AS3 but not AS2, Stage3D is one. I'll leave it to someone else to make a list, but basically, AS3 is the better (and definitely faster) choice for any situation I can think of.

Resources for Learning Pure AS3

Similar question: Best Resources for Learning AS3
I am interested in learning AS3 and have downloaded FlashDevelop and played around with it a bit, learning some of the fundamentals. However, when I attempt to start on any relatively simple project (eg. a multipage document) I get completely lost and have no idea how I should build my project. Are there any resources, tutorials, 'cookbooks' etc. that teach actionscript 3 through example projects. I keep finding books that explain the fundamentals of the actionscript syntax or tutorials that explain how to use actionscript to complete a task in the Flash IDE but this is not what I am after.
Where can I learn how to create projects in pure AS3 without the aid of the Flash IDE or Flex? I don't mind if I have to create assets in the Flash IDE that I then compile to .swf or .swc for use in my actionscript code.
My advice is: learn Flex focusing strongly on MXML, or learn Haxe.
AS3 is verbous, unexpressive and unproductive compared to those two.
edit: you can check out the AS3 cookbook. nonetheless, after rereading your post, I've come to understand, that your problem is not learning AS3, but you're rather having design problems. Am I correct?
edit2: "Is it uncommon for people to work in pure AS3?"
I wouldn't say, it's uncommon. I'd say it's even common, i.e. a common mistake. Why? It's inefficient. I think, I can tell, because I did that a lot.
the main role of pure AS3 is to create libraries and frameworks. To create actual apps, it is really the hardest way one can choose. In all handmade apps, GUI turns out to be the most time consuming part. Laying out GUI using code is a nightmare.
Now MXML is really great for normal GUIs (a graphical editor is even better of course). And the Flash IDE is great for creating funky animated things. The best thing you can do with AS3 is take ASWing and their GUI-editor. As nice as ASWing is, its ugly and a pain in the arse to skin. But, you can.
The advantage of Haxe is, that its a more powerful language than AS3. You effectively write less code, and its signifficantly more typesafe, so you run into less errors and spend less time debugging. Also, another advantage is, that you can use the same language for creating a serverside backend for the app and pass objects transparently to it, using Haxe remoting, which cuts the transport layer down to nothing. All validation and business logic can run both on client or server. Plus it's open source and it evolves very fast. AS3 was a great thing when it came, but it has stalled eversince, which is nearly 4 years now.
So while there's nothing wrong using pure AS3 per se, you always have to compare it to the alternatives. Pure AS3 is inefficient and for geeks. Flex is highly efficient. Haxe is more efficient than AS3, and is for the really cool geeks.
Have you checked out Essential ActionScript 3.0 by Colin Moock that was in the other question? here is a preview on google books