oop - How to pass by reference in ActionScript? -
i'm trying modify object in class. have this:
mainclass.as:
.. var myobject:object = new object(); class2_instance.get_json(myobject); trace(myobject.id); // output: undefined. whereas should 42. see below. .. class2.as
public function get_json(url:string , the_object:object) { var request:urlrequest = new urlrequest(url); var variables:urlloader = new urlloader(); variables.dataformat = urlloaderdataformat.text; variables.addeventlistener(event.complete, complete_handler_json(the_object)); try { variables.load(request); } catch (error:error) { trace("unable load url: " + error); } } function complete_handler_json(the_object:object):function { return function(event:event):void { var loader:urlloader = urlloader(event.target); the_object = json.parse(loader.data); trace(the_object.id); //returns 42. }; } so json operation performs correctly within class2, , assigns .parse() value the_object, think there don't understand as's pass-by-reference logic. since expecting myobject in mainclass.as change, too.
what should modify value of function argument (myobject) directly ?
thanks !
objects passed reference.
but see in code overwriting the_object 1 on line : the_object=json.parse(loader.data).
you can create new variable , copy values in the_object:
var json:object = json.parse(loader.data); (var k:string in json) { the_object[k]=json[k]; }
Comments
Post a Comment