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