Thursday, November 17, 2011

Flash Builder not auto completing

I imported an existing project into FlashBuilder 4.0 and found that content assist (and class linking) didn't work.  After a bit of googling and testing it turns out that when you import a project the compiler looks for the main classes in the src folder. If you have them in a different place you need to explictly set this by right clicking the project > properties > Actionscript Build Path and then set the "Main Source folder" to the custom location (it will be set to src by default).

Saturday, July 2, 2011

Setting up the mic for Mac Book

My sister in law and a friend were having trouble setting up the single audio input on the Mac Book to record some audio and couldn't figure out how to get the Mac to use it as an input jack instead of the speaker output. So for anyone else having the same problem, here are the directions:

Open the System Preferences panel -- the icon looks like this:Then in the Hardware section click on Sound (last icon on the right):


On this next screen choose the last option item "Input" (on the far right):



Then at the bottom of this screen select the dropdown for "Use audio port for" and select "Sound Input":


Your line in should now work....

Of course, once you're done you'll have to reset this to "Sound Output" again so that you can use speakers or headphones :-)

Wednesday, April 20, 2011

missing images in iPhone using Titanium

Note to future self: If you build an app in Titanium -- do NOT create a folder in the images directory called 'iphone' to place iphone specific images there. They will show up in the emulator but not on the device. I ran into this a few months ago but didn't document the solution and just spent another 2 hours trying to debug it a separate time. Use any other name than 'iphone'!!!

Wednesday, April 13, 2011

Titanium createHTTPClient issue on Android

Setting up an Android app on Titanium, I was having problems getting a webservice using a signature. It was working fine on iPhone. Turns out that Titanium auto url encodes the url in an createHTTPClient.open() method -- thus sending a different string than the signature had hecked against -- and thus returning an error.

To fix it, do this:

var xhr = Titanium.Network.createHTTPClient();
xhr.autoEncodeUrl = false;

before you call the open() method.

Saturday, February 19, 2011

Blackberry Playbook error using AIR StageWebView

Here was a crazy error on the latest Blackberry Playbook simulator (0.9.3). If you reference a non-existent file or image, it throws this error:

Error #2044: Unhandled ErrorEvent:. text=Couldn't read a file:// file

It was no fun trying to figure out where this bug was coming from! :-(

Thursday, February 3, 2011

Facebook Places throws oAuth error: "The table you requested does not exist"

Just did a great workshop with Conrad Fuhrman who demonstrated his ARTi application, an augmented reality app build with Titanium. It also uses a new Titanium Facebook module that allows you to connect to Facebook using oAuth. However, when I tried to run the code sample I kept getting this oAuth error:

entries =>
{contents = "type"} = {contents = "OAuthException"}
{contents = "message"} = {contents = "(#603) The table you requested does not exist"}
}
}

After a google search this post turned up which explained it all. It turns out that Facebook Places does not work outside of the US, and since I was trying to access it from Barbados, it was failing.

Friday, January 14, 2011

Monday, January 10, 2011

Creating scrollable divs on a Mobile device

On mobile devices the scroll property cannot be set for divs on the page since the page itself is scrollable. Google has released a possible workaround that I am trying to get working. It involves disabling the scroll property of the document and animating the div in response to touch events:

http://code.google.com/mobile/articles/webapp_fixed_ui.html

Update: I just found the YUI Scrollview and (after figuring out a critical step to get the scrollbars to work) its awesome!

http://developer.yahoo.com/yui/3/scrollview/

The problem I ran into was how to get the scrollbars to show up. It turns out that the documentation does not include the need to attach a "yui-skin-sam" style to the container that holds the scrollable div. So in order to make it work here is a very simple example:

http://pastie.org/1454114

Friday, January 7, 2011

Getting local HTML file to load in the Blackberry Playbook

I've been trying out the SDK for the Blackberry Playbook and one thing that was stumping me was how to load a local HTML file using the StageWebView in AIR 2.5.

I placed the local HTML file in the root folder (in the same folder as the .mxml file) and tried to load it this way:

**************

import flash.media.StageWebView;

private var webView:StageWebView = null;

private function init():void{
// get the file location
var f:File = new File("app:/map-simple.html");

webView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );
webView.loadURL( f.url );

}

**************

...but it didn't work. Fortunately, I stumbled on this post by Mike Chambers that explains a workaround and recoded the app this way:

**************

import flash.media.StageWebView;

private var webView:StageWebView = null;

private function init():void{

var fPath:String = new File(new File("app:/map-simple.html").nativePath).url;

webView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );
webView.loadURL( f.url );
}

***************

This works great!

By the way, I also tried to use the QNXStageWebView in the latest Blackberry SDK but the FlashBuilder (Burrito) compiler gave me the following error:

A file found in a source-path must have an externally visible definition. If a definition in the file is meant to be externally visible, please put the definition in a package.

This apparently has been faced by other developers (see here) using the QNXStageWebView and the Blackberry support boards indicate that this is a beta Class and has numerous issues -- so I decided not to try to find a workaround (which seems to involve digging up an older swc file).

One caution, the AIR StageWebView is also still in beta and does not currently allow for communicating between the base app and the StageWebView object. In my case however, I am just trying to get a fully working HTML app to run on the Playbook.