Professional :: LoadVars Returning Escaped String - Variable Access Not Possible
Aug 21, 2010I am fetching some variables from a URL and get the result. While I can iterate through it via e.g.:
[Code]...
I am fetching some variables from a URL and get the result. While I can iterate through it via e.g.:
[Code]...
You will find enclosed a ".zip" file in wich there's a ".fla" file, a ".txt" file and 6 ".jpg" images. Frame 1 of the FLA only has a "Preload" class/constructor found on another site and works well. Frame 2 launches the graphic interface construction. The file "externalVar.txt" has one variable "maxVin" with a value of 6.
I would like to know WHY i can't acces this variable from outside of the loadVars object's scope (i would better say from outside of its ".onLoad" methode scope). In fact, when i trace my variable "maxVinNum" from outside of this function, flash player return "undefined". Even if i declare "maxVinNum" on the _root (_root.maxVinNum). For information, at the start of frame 2, i have let an instruction in comment: //var maxVinNum = 6; When we activate this instruction, then the variable is directely declared and everything works well. This test allow us to verify that scripts are not bugged. Here is the script of frame 2, some of you may understand quickly what's wrong :
[Code]...
It's too complicate to explain but I'll give you an example
I have an AS3 ResultEvent Object and this object has several propeties which can be accessed by this like:event.result.name or event.result.age and, I have this String variable: eventProperty:String that contains "name" or "age" How do I access to event.result. with the variable?
function fn1(var2)
{
//here i want to trace the name of var1....ie output: "var1"
}
fn1(var1);
how to trace the variable name i am passing to fn1 (ie. var1) as string?
ie. output shoud be
"var1"
ie i want to trace the name of argument variable i am passing
Is there a way to access a variable via a String? Something like this:
HTML Code:
var myVar1:Int = 1
var myVar2:Int = "myVar1" as variable name
This is obviously doesn't work (and in this case pointless), but is there a way to do this?
Using e4x in flex:
var attr : String = "foo";
var xml : XML =
<resultSet>
<node foo="1"/>
</resultSet>;
How can I use the variable "attr" to access
xml.node.@foo
I thought I could do it with
xml.node.@[attr]
But this doesn't seem to work. How can I access this attribute by a dynamic value like this?
Both
xml.node.@[attr];
and
xml.node.attribute(attr);
work, as Constantiner suggested.
Updates:
Say I have an XMLList in this form:
var bar:XML =
<resultSet>
<node>value</node>
</resultSet>;
I want to filter the original xml above by matching "foo" attributes with the "value" from node in bar.
Essentially I want a sublist of the original xml such that
xml.node.@foo == bar.value
for each xml row in the original value
As Constantiner mentioned, I can filter the original list by the value in foo, but what if I want to filter on multiple values?
Can I do something like:
xml.node.(bar.node.contains(attribute(foo)) ? attribute(foo) : null);
Or perhaps a cleaner method instead of the null?
my goal is to keep my output window organized so i can follow all my traces more easily. so i wrote a couple of custom functions to achieve that. one of them would be: to more easily trace the following variable for example
[Code]....
I'm trying to output a loadVars object to string, and it works just fine and dandy, except it goes a little something like this:
the variable is: start.ADDR_ORIGIN
the outputted variable name is: ADDR%5FORIGIN
The server-side script I'm sending the string to doesn't like that one bit, and said it would phone my momma if I keep doing it..
I have a project made in flex, using php data services to access a sql server database, and I need to convert it to mysql, I have changed all my php services from sqlsrv to mysqli. Something like this:
$this->connection = mysqli_connect(SERVER,USERNAME,PASSWORD,DATABASE); // Start Connection
$ssqlstring = "select * from Users";
$runssql = mysqli_query($this->connection, $ssqlstring);
while($user = mysqli_fetch_array($runssql)) {
$users[$user["ID"]] = $user;
} return $users;
It worked fine on sqlsrv but with mysqli it returns to flex the INT, BIT or DATE values as string the main Datatypes on mysql are INT,VARCHAR,BIT(1),DATETIME,DATE (same as sqlsrv)
and on the flex the return types are mainly as object[]
You use a loadVars object (or even a loadVariables object) to get some data from a URL , but the server of that URL is down (or some kind of problem is happening with it),,.. and then it's as if your flash movie is just looping forever to get it?
Ofcourse, you then get the window saying something like "A script in this movie is letting your movie stop working. Do you want to abort the script" more or less.
Is there some kind of timeout function that I can use, in case loadVars can't access that URL, then it just breaks, and continues normally????? Ofcourse, giving a bad URL , will just give an onLoad event, with a "false" parameter, indicating that the URL wasn't loaded successfully.. but I'm talking about when the URL actually exists, but say the server is startign up, or there is a problem with, say, the Apache server on there... or something.
I am working on my open source project Downloadify, and up until now it simply handles returning Strings in response to ExternalInterface.call commands.
I am trying to put together a test case using JSZip and Downloadify together, the end result being that a Zip file is created dynamically in the browser, then saved to the disk using FileReference.save. However, this is my problem:
The JSZip library can return either a base64 encoded string of the Zip, or the raw byte string. The problem is, if I return that byte string in response to the ExternalInterface.call command, I get this error:
Error #1085: The element type "string" must be terminated by the matching end-tag "</string>"
ActionScript 3:
var theData:* = ExternalInterface.call('Downloadify.getTextForSave',queue_name);
Where queue_name is just a string used to identify the correct instance in JS.
JavaScript:
var zip = new JSZip();
zip.add("test.txt", "Hello world!
");
var content = zip.generate(true);
return content;
If I instead return a normal string instead of the byte string, the call works correctly.I would like to avoid using base64 as I would have to include a base64 decoder in my swf which will increase its size.
Finally: I am not looking for a AS3 Zip generator. It is imperative to my project to have that part run in JavaScript
I'm using a Coldfusion Dreamweaver template with cfinclude tags. The header contains a flash movie where I'd like to pass 2 variables via a query string to load the correct image and menu button based on the variables in the ActionScript.
Example: <param name="movie" value="flash/header_v8.swf?pic=1&button=1" />
pic variable can be 1 - 3 and button variable can be 1 - 7 depending on the each pages body element id. So the logic would be something like this for my flash movie:
if body id =home, then pic=1 and button=1
if body id =about, then pic=current variable and button=2
if body id =page3, then pic=1 variable and button=3
[Code].....
What's the best way to pass these variables depending on the current page body element id?
Im sure this is a classic problem. I am doing a flash project for a client.
This flash movie (lieing on Server A) calls an XML file on a totally different server (Server B). HOWEVER, it never reaches this xml file (although it reads the xml correctly when the flash is run on my computer). But to get it to run on my computer, I had to go into the global security panel and add the location of the SWF.
Now I tried everything to get the XML loaded on the SWF which lies on Server A. I went into the global security panel and added the folder on Server A containing the SWF, and the folder on Server B containing the XML file. However, it's still not working.
I try to get a variable from php : I have a button with :
on (release) {
$myLoadVars = new LoadVars();
$myLoadVars_received = new LoadVars();
$myLoadVars.var_to_php = myComboBox.getSelectedItem().label;
$myLoadVars.sendAndLoad ( "script.php",$myLoadVars_received);
$affich_var = $envelope_received.var_from_php; }
PHP //
script.php :
<? $result = mysql_query( "select counter from data_base where data1='".$_POST['var_to_php']."'");
$counter = mysql_fetch_row($result);
echo ("&var_from_php=$counter[0]");
?>
My result of all this : nothing happens. no variable is received from php. (The is no request ( from the firewall ) from flash to access the internet). So I think the error is around the sendandload. By the way, the php script works perfectly with loadVariablesNum.
How can I access a timeline variable from a static class / singleton?
View 14 RepliesI have a variable which needs to be updated upon user input. It works inside the function, the trace function returns the correct type, but for a reason it wont pass it on the variable on the main timeline.[code]
View 5 RepliesI am using loadVars to get strings from a text file and then I loop it to put them all in an array. But as indicated in the code, I want to check the variable name so a certain named variable will be put into a different variable, not the array. I have not been able to find how to check this...everything I try gives me undefined.
ActionScript Code:
myVars.onLoad = function(success) {
if (success) {
[code].....
Can I bring in a variable (saved in a text file) using LoadVars and then make that variable accessible from anywhere in the script (i.e. make the variable a global)?
View 1 Repliesok so i've been stuck on this for a while...What i'm trying to do is create a function that updates a global variable (randomVar) that is itself a parameter in the function e.g
[Code]....
Basically, i thought randomVar and vari were the same so when vari was changed randomVar would too but that's not the case. So how do i make the parameter equal the new value(5). I want to repeat the function using different variables so putting randomVar = vari in the function is not possible.
just wondering if there is a way to reset the LoadVars() success variable to false or undefined. i need to do this b/c i'm repeatedly fetching data from a asp file using the same LoadVars() Obj to store the data sent from the asp page.
View 6 RepliesI have an object array into which I've pushed a number of objects with different variables :- myArray.push({myRef: 1, myValue: "W"}); I can sort the array in numerical order using :-myArray.sortOn("myRef", Array.NUMERIC);but after sorting I would like to collapse the array using something along the lines of :-myArray.join("");to join the OTHER variable (myValue)...Is it possible to do this without pushing every instance of 'myValue' to another array and then joining that?
View 4 RepliesI'm trying to return XML from an event complete back to the main function, but can't figure out how to do it.Here's the functions I'm calling:Main File:
public var mySendAndLoad:SendAndLoad = new SendAndLoad();
mySendAndLoad.sendData(url,variables)
The mySendAndLoad class:
[code]........
However, on a bright note its coming!!!! So far, everything is going well and I am now seeing the light with AS3I do have a question on returning a variable from a function that loads an external CSS. This particular function is located inside a LoadStyleSheet.as class along with another public function that sets text properties to fields when accessed. What I am looking for is accessing the stylesheet after its been loaded in another class. I know in AS2 I could use the Delegate method for something similar to this situation. Not sure what the next step is for AS3. Anyhow, function script is below.
ActionScript Code:
public function loadStyleSheetItem(loadStyleSheet_str:String):void {
var styleSheet_css = new StyleSheet;
[code]......
There are 12 color variables, and each answer adds a number to each variable.At the end of the quiz, all the variables are put into an array, and sorted. Then the 3 highest variables are displayed. I have gotten this far. My problem is that I need to link the variable name (color) with the number it returns.[code]
View 2 RepliesI have a problem with getting a string from server. When I get the string, it is encoded and I don't know how to encode it. In the string are normal characters and instead of special symbols are eg u010d, u011b and others. Are there some function to decode it?
View 1 RepliesI'm using an onLoad function (importing variables from a text file) and I'm creating arrays within a for loop in the onLoad function.
I'm using something like this:
Code:
this["dvdAry" + i] = this[indexAry[i]].split("##");
So say the first array is called dvdAry0 .
How can I access that Array from a function? Please note the function, the onLoad function and the arrays are all being created on the same timeline.I've tried tracing the array dvdAry0 from the function after the array is created in the onLoad function, but it comes up as undefined. Is the array created on the object that I'm using onLoad on?I'm using a loadVars Object called loadDVDsText.
Let's say I'd like to post some data to a server side script. If my data is
var data:String = "<data><tag1>hi</tag1></data>";
and I'd like to send it with LoadVars, I can do:
var lv:LoadVars = new LoadVars()
lv.data = data;
lv.sendAndLoad("http://thescript/", lv, "POST");
However, this results in the POST looking like this:
data=<data><tag1>hi</tag1></data>
if I want to send it without the variable name (no "data=", just the actual data), how is this possible? In AS3 I can just use the .data property of a URLRequest and it will work, however I can't find a way to do this in AS2.
[code]...
I have an input field with the var name "chosenloc" in the same scope as the timeline I'm working in. I've set the input field var in code, on the fly, and by entering a number right into the field.
ive upgraded my publish settings from AS2.0 to AS3.0 and all of a sudden my scripts doesnt work. im getting the following error.
Error #1065: Variable LoadVars is not defined.
the only piece of code where i discovered LoadVers(); is this, but what needs to be changed?
var description_lv = new LoadVars();
description_lv.onData = function(raw_text){
description_txt.text = raw_text;
}
Im trying to load a variable from a text file with loadVars.The txt file has this -
Code:
num = 10
The flash looks like this
Code:
var load_lv = new LoadVars();
load_lv.load("tmbnum.txt");
load_lv.onLoad = loadTextVariables;[code]....