Technology blog oriented towards good design and impressive web applications.

IdleTogether Home

Archives Posts

Reduce CPU usage in Air applications

May 21st, 2009 by Nicolas Noben

arno.org has a great article on how to reduce the CPU usage in your air apps. The meat of it is essentially not using ENTER_FRAME (duh), and more interestingly dropping the framerate to once every 10 seconds (0.1) once the air application goes in the background (minimized/hidden).

Read the full article at arno.org

Filed under News, Air, Flex, All having No Comments »

Archives Posts

The case for a great CAPTCHA idea: Rotate the image

May 7th, 2009 by Nicolas Noben

Here is a great concept for a CAPTCHA.

The ROTCAPTCHA (PDF, 1.4MB).

It’s a CAPTCHA based on image orientation.

The ROTCAPTCHA system requires users to adjust randomly rotated images to their upright position. This is a task most people will be familiar with given the state of early digital cameras, etc.

This system has many advantages, such as being language independent and support many input sources.

Picture 1.png

Filed under Art, News, Rant, Flex, Flash, All having No Comments »

Archives Posts

yooouuutuuube

May 7th, 2009 by Nicolas Noben

Brilliant. Why didn’t I think of that? yooouuutuuube.com

Filed under News, Art, Flash, All having No Comments »

Archives Posts

Google Tv ad platform

May 7th, 2009 by Nicolas Noben

With the google TV Ad platform, learn how google makes use of the data it uses and how it’s all about the initial audience retained (%IAR).

Via the Google Blog.

Filed under Google, News, All having 1 Comment »

Archives Posts

Rolando 2 for iphone is looking slick

May 7th, 2009 by Nicolas Noben

Via kotaku

Filed under News, Rant, All having No Comments »

Archives Posts

JSWOOF - A faster JSON encoder decoder for Flex

March 29th, 2009 by Nicolas Noben

JSWOOF is a pretty neat JSON parser. It’s lightweight and about a third faster than the corelib JSON encoder/decoder.

Filed under News, Air, Flex, All having No Comments »

Archives Posts

Database of snippets of code for AS3

March 22nd, 2009 by Nicolas Noben

Here is a great little site I stumbled upon today.

It’s called java2s and it’s basically example source code (snippets) of many languages, organized by topic.

Here is the Flex / Flash / Actionscript category.

Do you know other ones (categorized)? If so, let us know.

snippets-code-flex-as3-flash.jpg

Filed under Tutorial, Air, Flex, Flash, All having No Comments »

Archives Posts

Class to Open object(s) from file with Flex in Air

February 24th, 2009 by Nicolas Noben

Before, I wrote about How to save one or more objects to file using this class.

Today it’s time to read it and bring back the object in Flex.

The class

package com.idletogether
{
	import flash.events.Event;
	import flash.filesystem.*;

	public class Opener
	{
		public static var file:File;

		public static function openFile() :void
		{
			file = new File();
			file.addEventListener(Event.SELECT, dirSelected);
			file.browseForOpen('');
		}

		public static function dirSelected(e:Event) :void
		{
			// this will be our object back
			var dat:Object = new Object();

			var fileStream:FileStream = new FileStream();
			fileStream.open(file, FileMode.READ);
			dat = fileStream.readObject();
			fileStream.close();

			some.object = dat.data;
			some.other.object = dat.structure;
		}

	}
}

How to use it

Simply…

import com.idletogether.Opener;
Opener.openFile();

This example is very basic, but it is kept simple for the sake of being easy to understand. From there you can build up a much more tailored system. This should get you started.

Use the Expressions panel of Flex and add a ‘watch’ to the variable ‘dat’ to see what came back in and if it is in good form.

HTH,
Cheers.

Filed under Tutorial, Air, Flex, All having 1 Comment »

Archives Posts

Class to Save object(s) to file with Flex in Air

February 23rd, 2009 by Nicolas Noben

The class

Feel free to use it for free or commercial projects.

package com.idletogether
{
	import flash.events.Event;
	import flash.filesystem.*;

	public class Saver
	{
		public static var file:File;

		public static function saveToFile() :void
		{
			// pick an unused extension
			file = new File("/filename.ext");
			file.addEventListener(Event.SELECT, dirSelected);
			file.browseForSave('');
		}

		public static function dirSelected(e:Event) :void
		{
			// this object will get saved to the file
			var dat:Object = new Object();

			dat.data = some.object;
			dat.structure = some.other.object;

			var fileStream:FileStream = new FileStream();
			fileStream.open(file, FileMode.WRITE);
			fileStream.writeObject(dat);
			fileStream.close();
		}
	}
}

How to use it

It’s a static method to be called so, simply…

import com.idletogether.Saver;
Saver.saveToFile();

This will prompt the user to pick a destination and will suggest the file name “filename.ext”.

Please note that you can’t save DisplayObjects straight to file using writeObject. It’s a limitation.

From here, find out how to get the object back into flex in the next post.

HTH,
Cheers.

Filed under Tutorial, Air, Flex, All having 2 Comments »

Archives Posts

Apply drop shadow to text at runtime with Flex in MXML

February 22nd, 2009 by Nicolas Noben

A quick and easy one but I always end up looking for it and not finding it easy.

<mx:DropShadowFilter id="dropShaText" distance="1" angle="45" blurX="0" blurY="0" alpha="1" color="0x111111" />
<mx:Label text="Hello world" filters="{[dropShaText]}" />

font-drop-shadow-flex.png

Filed under Tutorial, Flex, All having No Comments »

Archives Posts

Twitter Search becomes the new Google for 0-day news & reviews

February 18th, 2009 by Nicolas Noben

2755v2-max-150x150.pngTechcrunch has a very good article about Twitter and its new position on the market of search engines.

Essentially when a news breaks out or a product is being launched, Google will take several days to aggregate the information said about it, while Twitter Search can reveal nearly instant opinions.

The barriers is also lower as a Twitter account takes a lot less maintenance than a blog account. Writing a post on Twitter can be done while on the phone and virtually takes no time.

However, because it is instant feedback, it also implies that the ‘review’ of the news, product or subject in the tweet is obviously right off the bat, and might not be polished / thought about. People could change their opinion and post again in 10 mins.

Twitter, which I used to hate, is starting to take a very important place on the net and I’m mature enough to admit it and embrace it. That said, it is still a gezillion of idiots fantasizing about their life, writing about their pets or the latest battlestar.

Filed under Twitter, Google, News, Rant, All having 3 Comments »

Archives Posts

Bespin - Web-based code editor from Mozilla

February 14th, 2009 by Nicolas Noben

bespin-code-editor-online-web-2.0.pngMozilla Labs is working on a new project called Bespin. It’s a web-based code editor and it looks promising. It will eventually allow participants to collaborate on the same files straight from their browser.

The project is at a very early stage but it already looks solid.

It doesn’t do much at the moment but they’re confident that Bespin will eventually be highly extensible and easily accessible to users.

More info in this post and here.

Bespin screenshot mozilla.png

Filed under News, All having No Comments »

Archives Posts

Digg Mob - Observing the mob live

February 12th, 2009 by Nicolas Noben

Digg Mob talk live.pngThe Digg Mob experiment is a flash application that follows the comment as they are posted lived on Digg, regardless of the post.

It’s freaky to see that there are comments posted every 2-3 seconds, sometimes faster.

The app is beta but it’s browsable. Each comment is shown on one line and is clickable. From there you can read the blurb about the Digg post and/or visit the site straight from Digg Mob.

Digg mob comments live api.jpg

Filed under News, Flash, All having No Comments »

Archives Posts

Flash / Flex / AIR Development Adelaide - Freelance Available…

February 12th, 2009 by Nicolas Noben

senior-flash-flex-webapplication-ria-development-freelance-australia.pngJust a quick personal update. I’m in the process of going Freelance in Adelaide for Flash development and Flex development.

If you need or know someone who needs a senior Flash/Flex/AIR developer with experience, please don’t hesitate to forward my details.

I’m open for freelance and contract work, remotely or on location anywhere in Australia.

I’ve been developing and designing websites and web applications since the late 90ies and I’ve been full-time Flash-ist for 6 years. I started as a Web Designer. With experience on both sides, I manage my time efficiently and take care of a project from specifications to deployment.

Cheers
Nicolas

Filed under News, Google, Flex, Flash, Blogroll, All having No Comments »

Archives Posts

Adobe launches the Adobe AIR™ Market Place

February 11th, 2009 by Nicolas Noben

Today Adobe announced the launch of the Adobe Air Market Place. It’s a new website supposed to help the promotion of Adobe Air applications and to highlight them for sale.

It’s not an Apple app store, for sure, but it should help promote your Air applications out there.

Picture 5.jpg

Filed under News, Flex, All having No Comments »

Archives Posts

Working through Screens

February 11th, 2009 by Nicolas Noben

Working through Screens: 100 Ideas for Envisioning Powerful, Engaging, and Productive User Experiences in Knowledge Work.

It’s not the easiest read, but it has some great insight, and hey, can’t beat a free ebook.

Picture 4.jpg

Picture 3.jpg

Filed under Tutorial, News, All having No Comments »

Archives Posts

Capture CTRL+N / CMD+N in Flex/Air/AS3

November 23rd, 2008 by Nicolas Noben

When you program features for (web) application, it’s often useful & good practice to allow users shortcuts for common actions.

This easy snippets shows how to capture ‘new’ or Control+N or Command+N on the Mac.

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);

private function keyDown(e:KeyboardEvent) :void
{
        if(e.commandKey || e.ctrlKey)
        {
                switch(e.keyCode)
                {
                        case Keyboard.N:
                                // do stuff
                        break;
                }
        }

}
Filed under Tutorial, Flex, Flash, All having No Comments »

Archives Posts

Easy Form Validation and Submit Button enable-disable in Flex 3

November 18th, 2008 by Nicolas Noben

The submit button is enabled/disabled automatically based on the form elements’ validations.

The form

<mx:Form x="0" y="90" width="100%" height="100%" id="form1" creationComplete="resetForm()">
	<mx:FormItem label="Email" width="100%">
		<mx:TextInput width="100%" id="txtEmail" change="validateUs()" />
	</mx:FormItem>
	<mx:FormItem label="Password" width="100%">
		<mx:TextInput width="100%" id="txtPassword" displayAsPassword="true" change="validateUs()"/>
	</mx:FormItem>
	<mx:FormItem width="100%">
		<mx:Button id="btnLogin" label="Login" width="85" height="25" click="loginUser()" />
	</mx:FormItem>
</mx:Form>

The validators

<mx:EmailValidator id="val1" source="{txtEmail}" property="text" required="true" />
<mx:StringValidator id="val2" source="{txtPassword}" property="text" required="true" minLength="2" />

The script

private function resetForm() :void
{
	btnLogin.enabled = false;
}
private function validateUs() :void
{
	btnLogin.enabled = (Validator.validateAll([val1,val2]).length == 0);
}
Filed under Tutorial, News, Flex, All having 2 Comments »

Archives Posts

Automatically resize Text/TextArea based on content (autoSize) in Flex

November 13th, 2008 by Nicolas Noben

UPDATE: turns out that doesn’t always work. the autoSize property is not reliable at all…

This, should do!

var ta_height:uint = 25;

field.validateNow();

for(var i:int=0; i < field .mx_internal::getTextField().numLines; i++) {
	ta_height += field.mx_internal::getTextField().getLineMetrics(i).height;
}

derivedHeight = ta_height;

Thanks Vaan.


Original post:

Adobe’s dodgy textHeight sure doesn’t do the trick. I end up getting a textfield of 2000px height while it clearly looks like 300 tops.

This, however, works.

the code

private function resizeMe(field:TextArea) :void
{
	field.validateNow();
	field.mx_internal::getTextField().autoSize = TextFieldAutoSize.LEFT;
	field.height = field.mx_internal::getTextField().height;
}

Just use that on your TextArea or Text component:

creationComplete="resizeMe(this.myTextAreaInstance)"

Thanks to Vaan for some insight about the mx_internal::getTextField().

Filed under Rant, Flex, All having 9 Comments »

Archives Posts

Odd @font-face parsing in Flex 3 (bug?)

November 6th, 2008 by Nicolas Noben

This works:

@font-face
{
	src: url("assets/FontReg.ttf");
	fontFamily: FontReg;
	fontWeight: normal;
	fontStyle: normal;
}

@font-face
{
	src: url("assets/FontMed.ttf");
	fontFamily: FontMed;
	fontWeight: normal;
	fontStyle: normal;
}

This won’t work properly (all ends BOLD):

@font-face {
	src: url("assets/FontReg.ttf");
	fontFamily: FontReg;
	fontWeight: normal;
	fontStyle: normal;
}

@font-face {
	src: url("assets/FontMed.ttf");
	fontFamily: FontMed;
	fontWeight: normal;
	fontStyle: normal;
}

Yeah. Not much to add. I believe it has to do with the way the flex compiler parses the style code.

Filed under Rant, Flex, All having No Comments »

« Previous Entries