TURBOSHAN
asked on
How to convert OBJECT to String instead of [object Object] in ActionScript
Hi,
I am building a small mobile app using the Adobe Flash Builder Launch Pad tool which generates sample code for you.
So what I've done is had it create a simple database example.
What THAT! does is, you enter some string value into an input field and click a button and when you do, a bunch of SQL is executed that creates a table (if it does not exist), inserts the record into a local table and then automatically retrieves that inserted value and loads it as the dataProvider to a list component.
Works great!
HOWEVER!!!....when experimenting with that...I want to pull the data from the local .db it creates/inserts into and load that value into a string, perhaps the ".text" property of an inputText field.
So I've tried a bunch of different things to do this. I've tried clicking on the list item it automtically adds to and retrieving the .selectedItem valiue.
I've tried storing the SQL-retrieved value into an ArrayCollection and then retrieving the value at using ArrayCollectionName.getIte mAt(0).toS tring();
No matter what I do, it comes back into my String variable as [Object object]
This makes sense if you look at the bottom of this page where it shows what happens when you cast an Object to a String: http://tinyurl.com/24cbhxt .
But there should be SOME WAY! for me to pull the value the user entered, which was written to the local .db, and put it into a String variable. Right? This seems like a very basic thing to do and in fact I routinely do this in PHP...I just cannot make it work with ActionScript in Flash Builder.
Can someone please show me how to retrieve the string value from the local .db?
I'm open to any solution. Once I see how to do it in one way, I will be able to understand how to do it any other way, I think.
Below is the code sample that the Adobe Launch Pad tool generates as well as an example of how I try to get that value to put into a string variable.
Thank you!
========================== ========== ========== ========== ========== ======
The first three functions are what Launch Pad created for me and they work to load the value the user enters into a TextInput filed into the local .db and then reads it from the local .db and loads that into the dataProvider for the list.
At the bottom is my attempt to get the .db value and put it into a simple TextInput string field.
=======================
protected function view1_viewActivateHandler( event:View NavigatorE vent):void
{
sqlConnection = new SQLConnection();
sqlConnection.open(File.ap plicationS torageDire ctory.reso lvePath("g iberish.db "));
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "CREATE TABLE IF NOT EXISTS giberish (label TEXT)";
stmt.execute();
getAllGiberish();
}
protected function getAllGiberish():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "SELECT label FROM giberish";
stmt.execute();
list1.dataProvider = new ArrayCollection(stmt.getRe sult().dat a);
}
protected function onAdd():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "INSERT into giberish values(:giberish)";
stmt.parameters[":giberish "] = g.text;
stmt.execute();
getAllGiberish();
g.text = "";
}
==================== All of the above works!==================
Here is how I try to pull the value into a String. Note: lb2.text is a TextInput field.
list2.dataProvider = new ArrayCollection(stmt.getRe sult().dat a);
lb2.text = String(list2.dataProvider. getItemAt( 0));
// That puts [Object object] into lb2.text rather than the value of, say, "data_Input_By_Me"
I am building a small mobile app using the Adobe Flash Builder Launch Pad tool which generates sample code for you.
So what I've done is had it create a simple database example.
What THAT! does is, you enter some string value into an input field and click a button and when you do, a bunch of SQL is executed that creates a table (if it does not exist), inserts the record into a local table and then automatically retrieves that inserted value and loads it as the dataProvider to a list component.
Works great!
HOWEVER!!!....when experimenting with that...I want to pull the data from the local .db it creates/inserts into and load that value into a string, perhaps the ".text" property of an inputText field.
So I've tried a bunch of different things to do this. I've tried clicking on the list item it automtically adds to and retrieving the .selectedItem valiue.
I've tried storing the SQL-retrieved value into an ArrayCollection and then retrieving the value at using ArrayCollectionName.getIte
No matter what I do, it comes back into my String variable as [Object object]
This makes sense if you look at the bottom of this page where it shows what happens when you cast an Object to a String: http://tinyurl.com/24cbhxt .
But there should be SOME WAY! for me to pull the value the user entered, which was written to the local .db, and put it into a String variable. Right? This seems like a very basic thing to do and in fact I routinely do this in PHP...I just cannot make it work with ActionScript in Flash Builder.
Can someone please show me how to retrieve the string value from the local .db?
I'm open to any solution. Once I see how to do it in one way, I will be able to understand how to do it any other way, I think.
Below is the code sample that the Adobe Launch Pad tool generates as well as an example of how I try to get that value to put into a string variable.
Thank you!
==========================
The first three functions are what Launch Pad created for me and they work to load the value the user enters into a TextInput filed into the local .db and then reads it from the local .db and loads that into the dataProvider for the list.
At the bottom is my attempt to get the .db value and put it into a simple TextInput string field.
=======================
protected function view1_viewActivateHandler(
{
sqlConnection = new SQLConnection();
sqlConnection.open(File.ap
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "CREATE TABLE IF NOT EXISTS giberish (label TEXT)";
stmt.execute();
getAllGiberish();
}
protected function getAllGiberish():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "SELECT label FROM giberish";
stmt.execute();
list1.dataProvider = new ArrayCollection(stmt.getRe
}
protected function onAdd():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "INSERT into giberish values(:giberish)";
stmt.parameters[":giberish
stmt.execute();
getAllGiberish();
g.text = "";
}
==================== All of the above works!==================
Here is how I try to pull the value into a String. Note: lb2.text is a TextInput field.
list2.dataProvider = new ArrayCollection(stmt.getRe
lb2.text = String(list2.dataProvider.
// That puts [Object object] into lb2.text rather than the value of, say, "data_Input_By_Me"
ASKER
No, I just mentioned that I am able to do this with PHP very easily.
This is a Flash Builder 4.6/Actionscript problem only.
This is a Flash Builder 4.6/Actionscript problem only.
OK, understood. I only saw it because it was in the PHP Zone. Best of luck, ~Ray
ASKER
Yeah...there's not a good area for just Flash Builder/Flex/ActionScript on Experts-Exchange so it's always a challenge trying to figure out where to post such questions.
Thanks anyway!
Thanks anyway!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I found my own solution.
http://php.net/manual/en/language.oop5.magic.php