While there are alternatives to actionscript for doing a multi-user application, Colin Mook and Derek Clayton had teamed up (to form User1.net) to do Union Platform. The platform itself provides alternative languages to develop application with, the most notable feature is one can create multi-user applications with actionscript only. Thats a lot of good news on itself. Well, even a sample server environment is free for 1000 users at one time! Huge! Its called “tryuion.com” and provides a testing ground to test your skills for a multiuser application.
The even bigger news is Union Platform is now on cloud in collaboration with Influxis and its at unioncloud.io. Union Cloud is free till its in Beta, so the time is now to build a multi user application with Union Cloud , the feature list looks awesome.
With Flash player 11 comes Stage3D, which enables us to run Flash content in GPU. While its all good, coding for a simple task looks as if something real big.
Fortunately Starling-framework makes the life easier. Its a framework on top of Stage3D(codenamed Molehill). The best part of it is one can just use it as if using flash’s own API. It has movieclip, sprite, events and displaylist. While I was trying my first handson this framework, found some must to do things, which may save someone’s time.
1. First of all, it needs Flash Player 11.
2. It must be run inside a browser. Yeah, SWF must be embedded inside a HTML page.
3. Inside the embed code, “mode” must be set to “direct”.
<param name="wmode" value="direct">
4. Embeding the swf with SWFObjectdoes not work for me. So used the minimum default Object-embed method. To author 1. Need Flash Player 11 SDK 2. Overlap it on Flex SDK 4.5.1 , so that you got the compiler ready. 3. Compile with extra compiler argument as ” -swf-version=13 “.
The basic HTML boilerplate code to embed look as
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<meta name="google" value="notranslate">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="600" id="movie_name" align="middle">
<param name="movie" value="Startup.swf"/>
<param name="wmode" value="direct">
<object type="application/x-shockwave-flash" data="Startup.swf" width="600" height="600">
<param name="wmode" value="direct">
This might be a little late, but worth keeping an eye on. As we know since Flashplayer 10.1, the player is throttled in situations. What does that mean is the FlashPlayer will run the EnterFrame and Timer based events at much lower rates, when the player is not visible. Much lower means, as low as 2 FPS (2 frames per second) and AS2 Intervals as well as AS3 timers will low down to 2 events per second!!
This throttling is best for mobile and other devices which can run FlashPlayer now. Throttling means saving of energy and increasing battery life of the device. So it seems its the best thing happened to Flashplayer, while we are making content for the devices.
The problem arises when we create stuffs for desktops or laptops, where FlashPlayer was running since a long time, conventionally. And we still think we can go on developing our applications and games with the same mind set as we used to do till now. While developing games, the most used event is ENTER_FRAME and when throttling happens, all of the logic of the application/game goes wrong!! While the logic of the game still holds good if the player is active all the time but once the player is invisible, the player starts to throttle and frame-rates and timer events start to fall. This will happen even our game is running in a browser tab and we are in another tab. This can happen if we scroll down a page and the game is on the top portion of the page! The tricky part is different browsers behave differently and there is no clear idea about when the player starts throttling. So there is no fix solution for the same too.
Continue reading “Flashplayer Throttle : Solving a problem or creating one !”
This is good to see, finally the powerful opensource IDE for actionscript, haxe and php is targeting cross platform. With its newer community release version, apart from the major upgrade to the coding environment, the whole IDE is moving to Linux and Mac OSx. These ports are bridge based, but the intentions are clear. So exciting to see the whole of the IDE running in other platforms.
Well, the core feature of the IDE is updated to a significant level. The development and publish settings for AIR is now having a visual dialogue box. There is a project template for AIR for Android. These are some of the things apart from the whole list of features listed here.
Edge : A tool to take control of HTML 5 animation capabilities
Can not say more about this, one must watch the video on the link. Feels like early Flash days, when timeline was everything.
Molehill : A new set of lowlevel 3D APIs.
The details of this new 3D API and its capabilities are here at Adobe Labs. Definitely that would open up some more fun on gaming side and as we can see the demo car race is already impressive. Just thinking whether the game studios will be interested in porting the native codebase to SWF or in AIR. Or how much re-writing may be necessary for the translation. If at all the games are ported into SWF with/without the help of Alchemy can those still maintain the frame-rate and the massive multiplayer requirements (which again should not be diffiicult with P2P in Flashplayer). If those are going to be of some standard result, then I think all the games are playable in all the Operating systems. I mean the games will not only become windows only. One can play the same game on Linux, MAC and Windows. No Code re-write, hopefully I guess. As everything will boil down to AIR or SWF. Ohh, I am forgetting the AIR and Flash are coming to TVs, so gaming consoles also could take that advantage. The keynote already showed gaming controls like joysticks and steer wheels. Will Flash take on the gaming industry by storm this time?!! Time now is to just wait and watch.
This is in continuation to the previous post, Encapsulation:Why? , I thought it makes sense if we talk about the same principles to apply in a dynamic class.
First thing first, what is a Dynamic class?! Well, for those who are from AS1 and AS2 days, its in the blood kind of thing. We create an object then add on some properties to it in the runtime. But AS3 seems to take that freedom out. Well, not really, there are still some dynamic classes out there in AS3. Our very basic MovieClip is still a dynamic class. That means, we can still create new properties and methods in it. While the Sprite class is not.
Any new class we make in AS3 is known to be something called as a Sealed class. These classes cannot be modified to have new properties or methods in runtime. Whatever propeties and methods are declared at compile time is only available at runtime. So how to make a dynamic class, its just to declare a class with dynamic keyword as
public dynamic class MyDynamicClass
public class MyDynamicClass
Well, thats cool and fine. But why I would make one? The question may be answered by the way one designs an application, chances are you never want to make one or may be you just need some. So its all kind of depends how you want to program your application. Now if we make a dynamic class and add some properties, then how to controll its getter and setter as we have discussed earlier about controlling for a sealed class.
There is a very nice utility available at flash.utils package. Its the Proxy class. This does exactly, the same thing as we are searching for. Its a class, which is never being used by its own. Never instantiated. The only way to use it is to subclass it. Go over to the documentation to see a complete overview of the class.
Now lets jump directly to the code and see how it works. Then we will go on details about what it does. I think that way we can relate things while talking. My proxy class begins like
public dynamic class MyProxyObject extends Proxy
Continue reading “Encapsulation : How ? Its a Dynamic Class.”
This is probably the most awaited release of FlashDevelop. Now that completes a perfect IDE. The new version of FlashDevelop IDE has built in support for SVN and GIT both. Provided you have to have tortoise SVN and tortoise GIT in your machine. For SVN part, the IDE installer has made it available too by bundling SilkSVN with it. So installing tortoise SVN is just seems to be optional. Thats some kickass IDE feature. I have just tested it with SVN and GIT both and they work out of the box.
These version control systems are not activated by default. You have to go inside settings and activate them. Or else they do not seem to exist in the IDE.
Another nice integration is the option to select whether to install Flex SDK with the FlashDevelop. This is being asked when you install the IDE. That means, if you do not want to take the pain of downloading the FlexSDK separately it will do it for you.
Thats all for the time being, I am so excited and happy that finally this beautiful IDE added up the things which now makes it a perfect tool for flash a developer.
Happy Flashing :)