Posts tagged Tip of the day
Tip of the Day – Creating an AIR application for a kiosk
17Today I needed to prototype a chromeless AIR application for use in a kiosk. It’s actually a whole lot easier than I thought it would be.
Here’s a quick example of what you can do with Adobe AIR and FlexMDI.
The cool thing about Adobe AIR is that it can run on Linux. So if I needed to deploy thousands of kiosks I could install Linux on them and save on windows licensing.
Here is the application source:
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:flexmdi="flexlib.mdi.containers.*" layout="absolute" backgroundColor="0x000000" showFlexChrome="false" applicationComplete="onReady()"> <mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.controls.Button; import mx.core.Application; import mx.events.MenuEvent; import flexlib.mdi.containers.MDIWindow; import flash.display.StageDisplayState; import net.natebeck.BrowserWindow; [Bindable] public var ADOBE:String = "Adobe"; // FlexMDI Manager layout types [Bindable] public var TILE:String = "Tile"; [Bindable] public var TILE_FILL:String = "Tile and Fill"; [Bindable] public var CASCADE:String = "Cascade"; // File Menu [Bindable] public var EXIT:String = "Exit"; [Bindable] public var buttons:Array = [] private function onReady():void { // Enter Fullscreen Interactive State stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; } public function openWindow(event:MenuEvent):void { var location:String = ""; switch(event.label) { case ADOBE: location = "http://www.adobe.com"; break; case CASCADE: mdic.windowManager.cascade(); break; case TILE: mdic.windowManager.tile(false, 10); break; case TILE_FILL: mdic.windowManager.tile(true, 10); break; case EXIT: var exitingEvent:Event = new Event(Event.EXITING, false, true); this.nativeApplication.dispatchEvent(exitingEvent); if (!exitingEvent.isDefaultPrevented()) { this.nativeApplication.exit(); } break; } if(location.length > 0) { var window:BrowserWindow = new BrowserWindow(); mdic.windowManager.add(window); window.title = event.label; window.location = location; window.maximize(); } } ]]> </mx:Script> <mx:ApplicationControlBar dock="true"> <mx:MenuBar id="myMenuBar" labelField="@label" width="100%" height="100%" itemClick="openWindow(event);" > <mx:XMLList> <menuitem label="File" > <menuitem label="Exit"/> </menuitem> <menuitem label="Launch" > <menuitem label="Adobe"/> </menuitem> <menuitem label="Window" > <menuitem label="Tile"/> <menuitem label="Tile and Fill"/> <menuitem label="Cascade"/> </menuitem> </mx:XMLList> </mx:MenuBar> </mx:ApplicationControlBar> <flexmdi:MDICanvas id="mdic" top="10" bottom="10" left="10" right="10"/> </mx:WindowedApplication> |
And here is Browser.mxml
<?xml version="1.0" encoding="utf-8"?> <flexmdi:MDIWindow xmlns:flexmdi="flexlib.mdi.containers.*" xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300"> <mx:Script> <![CDATA[ [Bindable] public var location:String = ""; ]]> </mx:Script> <mx:HTML width="100%" height="100%" location="{location}" /> </flexmdi:MDIWindow> |
The full application can be downloaded here.
:: Update ::
There seems to a be a little bug in the applicaiton… when you’re rendering HTML with Flash Content within it. It won’t display in StageDisplayState.FULL_SCREEN_INTERACTIVE mode. However, if you hit the ESC key… the flash content will show up. I’ll have to check and see if there is a bug filed on this.
Tip of the Day – Get notified when someone checks in to the Flex SDK
0Something that I have wanted to do for a while is to be notified whenever anyone checks into the Flex SDK. That way I can keep up with all the changes as they happen. I finally figured out how to set it up today.
-
Visit the commits forum. Click the subscribe button.
-
Select Email or Email Digest.
-
I use gmail, Select Settings > Filters > Create a new filter. Setup the panel as shown.
UPDATE (3/30/2009):
The subject on the Flex SDK commit emails has changed slightly. The filter in the email no longer works. I am now using this filter instead: “svn:fx” of “[svn]”
-
Click Next Step, I use these setting so the emails don’t crowd my inbox.
-
Woot, now I can see all of the changes to the Flex SDK as they happen.
Tip of the Day – Tricks of the microphone settings panel
2I have an extensive background using the Microphone class within Flash Player. Anytime you try to connect to a user’s microphone, Flash Player displays a privacy dialog box that alerts the user to choose whether to allow or deny access to the microphone.
I’m sure you’ve seen it, this is what it looks like:

You widget (or app) MUST be a minimum of 216 x 138 (some people will argue you can do 215 wide, but in my testing sometimes 215 pixels wide can cause issues). When the player window is too small, the settings panel will either:
- Not show up at all, or
- Show up clipped and in some browsers mouse events will not register in Flash
You cannot disable the settings panel.
Here are a few helpful tips that I have figured out:
- The widget needs to be 216 x 138 ONLY when you’re asking for permission to the microphone. If you have control of Javascript on the page, you can change the size of the flash object on the page temporarily while you show the settings panel.
- You can use “Security.showSettings(SecurityPanel.PRIVACY);” to control when you want the settings panel to show up. Using the Security.showSettings method is helpful because there is a Remember button on that panel. If the user chooses “Remember”, then you never have to show the Settings panel again.
- The Microphone status events get dispatched when a user changes a Microphone setting within the settings panel. ( _mic.addEventListener(StatusEvent.STATUS, onMicStatus); )
- On your Microphone class, the “muted” property will tell you if you have access to the microphone or not.

These tips can be adapted for the camera settings panel as well.
Tip of the Day – AS3 Language Reference for your iPhone
0Today was my first real day as Senior Adobe Developer for T-Mobile… and to be completely honest with you guys… I’m completely exhausted and uninspired at the moment
So… with an honest intent to keep up my 30 day tips streak… I’m going to tell you to check out Mike Chambers’ new iPhone application. It may seem silly, but I find having the AS3 Language Reference on my phone incredibly useful at times. For example, when I’m flying, when I have no internet connectivity, or when I’m out at lunch and am trying to brainstorm a solution.
Learn more about AS3 API Reference iPhone application.
*Nate passes out*
Tip of the Day – LinkedIn… A Flex (and Flash) developers best friend
1This evening my wife informed me that there were over 16,000 job cuts announced today here in the state of Washington. Grabbing a few of the headlines from King 5′s website.
- Home Depot to cut 7,000 jobs, close Expo chain
- Sprint Nextel to eliminate 8,000 jobs
- Microsoft feels the pinch, cuts 5,000 jobs
- And who can forget… Adobe Company Wide Layoffs, Pulls out of Macworld Expo
It’s getting nasty out there. So my tip today is to let you in on some of my secrets to becoming successful on LinkedIn, even in a time of economic downturn.
Even though I attribute much of my success to being totally awesome… here are some of my tips for success on LinkedIn besides using LinkedIn Jobs:
Never be rude to recruiters
They may just be able to save your bacon someday. When I get an email from a recruiter… even if it’s for a job that I have no interest in. I always respond with a polite, “I’m sorry, I’m not interested at this time. Please feel free to add me as a connection on LinkedIn” response. Given today’s economy… if I was to lose my job, I’d want a group of recruiters willing to help me out.
Update your status
Not many people update their status. Which is a benefit for us, because your status updates show up on the homepage of your connections. It’s a great way to get noticed.. especially if you are connected to recruiters, see above tip.
Recommendations really help
Another great way to get noticed is to have well-written recommendations. Receiving recommendations I’ve found, is a lot like a credit score… sometimes they just take time to grow. Future employers like to see recommendations from many sources over the years. Not just 6 recommendations in the past 2 months.
Also… don’t go on a recommendation spree writing a recommendation for every single connection you have, you will lose credibility.
Answer questions in your respective field
Along the same lines of credibility, LinkedIn Answers is an excellent place to establish your credibility with the community at large. From a high level perspective, answer questions about stuff you know and earn expertise.
Join groups relating to your field
An example of this is the Adobe Flex Developers group, it’s a plethora of job postings all over the world. Also be sure to subscribe to the digest email for updates about the group.
[Seriousnote]
I hope that any of you whom have lost your job, and are reading this post know that any joking in this post is in jest. I’m connected with many recruiters (especially in the Seattle Area) who are looking for talented Flash and Flex developers, go ahead and send me a connection request and I can make an introduction.
[/Seriousnote]
Anyone reading this post is welcome to connect with me on LinkedIn.
Tip of the Day – Having an affair with Flash
0Expert Flash developers such as Grant Skinner, Keith Peters and Mr. Doob didn’t become Flash experts overnight. Take a look at Keith’s old labs page, or Grant’s Gallery Incomplet. These guys have been playing around and experimenting with the Flash platform for years.
Maybe you’re one of those people who say to themselves, I simply don’t have enough time to screw around with my own stuff… I’m way too busy… I need my insulin… I don’t know anything about math or physics. Well, cut the excuses and make the time! All it take is twenty minutes a day. Twenty minutes a day turns into more than 3 full work weeks a year. Don’t believe me? Here is the math:
20 minutes * 365 days / 60 hours / 8 hour work day = 15.2083 work days
If you’re like me, once you start experimenting those 20 minutes fly by, and before you know it your significant other is yelling at you that dinner is ready.
For example, it’s been snowing off and on here in Seattle. As I was gazing at the window watching the snow come down, I decided to try my hand at writing particle systems. Particle systems are something that have always intrigued me but I never could “find” the time. So instead of putting particles in the back of my mind (and ultimately never getting around to them), this weekend I researched and spent a few hours learning about particle systems. And I programmed this (move the mouse around):
It’s nothing breath-taking, but you know what… I know how to write a particle system now.
