Recently i had to align tons of UIComponents with scale and even rotation defined. And so, i decided to write a small static class that would really facilitate my life. I called it AlignUtil. That’s it for now. All links are listed bellow. Hope it helps someone. Cheers ^_^
ps: btw i decided to switch my devs license to MIT, so from now on u r free to use the source codes for whatever u want purpose.
In case u need to save utf8 data to a csv or xls file, mind that those formats do not support utf8 encoding.
Say, u’ve got to save a cyrillic text to a csv file:
// A sample cyrillic, bulgarian text, for exmaple
var utf8String:String = "Аз съм българче. Обичам наште планини зелени...";
// Try to save the file in utf8 charset and then
// open it with Microsoft Excel
var file:FileReference = new FileReference();
file.save(utf8String, "utf8_test.csv");
And here’s the result:
But don’t hurry to google for an as3 charset encoding library, as there’s a simple way to solve this issue:
// A sample cyrillic, bulgarian text, for exmaple
var utf8String:String = "Аз съм българче. Обичам наште планини зелени...";
// csv, xls appear to work only with the ascii
// and windows-like charsets, so as the string is
// cyrillic, we'll use the cyrillic (Windows) charset 'windows-1251'
// which codename's 'x-cp1251' according to the adobe's as3 reference.
var bytes:ByteArray = new ByteArray();
bytes.writeMultiByte(utf8String, "x-cp1251");
var file:FileReference = new FileReference();
file.save(bytes, "cp1251_test.csv");
Now we got the expected result:
Really simple, but still there might be someone who’d need it.
UPD: i’ve updated the class to version 2.1, fixed some bugs, added new features, switched the license to MIT !
yellow – current fps
cyan – current memory usage
red – max memory usage graph
As lots of you asked me to add some new features like the font color changing, performance increasement etc, i decided to make a new version of the ResourceMonitor class. I’ve added a few new features, made the code more ammm more readable (well, it’s an os class, so probably u’d like to edit smth there) and i’ve even made a documentation this time
And i also decided to rename it to ResourceMonitorUtil.
I’ve decided to make a sort of a mini package containing some handy utils (but not only) classes in one place.
Includes such classes like: VectorUtil, ResourceMonitor, MatrixUtil, LoaderUtil, Cache, VimeoPlayer, SkypeStatusIcon etc. Download the com.chargedweb.* package
Sometimes i need a fast black’n'white saturation method and this one’s the shortest i presume.
I can’t remember whose this method originally was, but it’s nice.
So there i was, trying to build my latest application which involved run-time cursor loading/usage.
I knew that the flex sdk had that static CursorManager class (i.e. mx.core.CursorManager), but as i looked up the manual – there’s no loadIcon() method, only setters that require class references which is sooooo unhandy if u deal with run-time loading assets (like i do).
So, i got myself some coffee, opened the eclipse and after some time spend – eureka!
I came to this slight solution which besides is elementary.
Today i had some free time to make a skype status icon class (don’t know who’d need that).
Anyways, it’s a simple class that connects to the skype service, retrieves the status code for a specified account name and displays the status icon. All parameters customizable. I’ve even created a sample page with a php proxy (see the archive)
The only thing why flex sucks is that components can’t actually load icons (Button class for example) i thought.
Yes, but that was until i found Ben Stucki‘s slight solution to this issue.
He wrote a nice utility class called IconUtility which creates BitmapAssets at run-time. This class is huge.
Sample button icon load up code:
var myBtn:Button = new Button();
myBtn.label = "press me";
myBtn.setStyle("icon", IconUtility.getClass(myBtn, "assets/my_icon.png"));
addChild(myBtn);
As you probably know the new fp10 api provides a new Vector class (wonder my didn’t they just make typed Arrays like in C#) that increases performace about x2 times.
But, still among with the performance you could face some difficulties working with Vectors, for example it doesn’t implement a sortOn() method which, i think you’d agree, is very handy.
UPD: lots of people use very strange/complicated methods to sort vectors.
Guys, stop complicating yr life – the task is way much easier.
So, here’s how i do the sortOn() with Vectors:
/**
* Converts vector to an array
* @param v:* vector to be converted
* @return Array converted array
*/
function vectorToArray(v:*):Array
{
var n:int = v.length; var a:Array = new Array();
for(var i:int = 0; i < n; i++) a[i] = v[i];
return a;
}
/**
* Here's a little example on how to sort a Vector using sortOn
*/
var v:Vector.<Object> = new Vector.<Object>();
v.push({id:5, email:"andrew@someweb.com"});
v.push({id:35, email:"david@someweb.com"});
v.push({id:12, email:"jill@someweb.com"});
// now to sort the Vector on the "id" property
var vSorted:Vector.<Object> = Vector.<Object>(vectorToArray(v).sortOn("id", Array.NUMERIC));
// easy and convinient isn't it? ^_^
AirPackager is a small app that will help you generate exe/dmg/rpm files out of your air package in other words – it’s just a GUI for the adt.
To install the app you need the AIR2 beta2 runtime
Again, works only on windows.