trouble accessing non-static functions from static functions in AS3

Posted by Dogmatixed on Stack Overflow See other posts from Stack Overflow or by Dogmatixed
Published on 2010-06-05T14:34:45Z Indexed on 2010/06/07 7:12 UTC
Read the original article Hit count: 547

I have a class containing, among other things, a drop down menu. With the aim of saving space, and since the contents of the menu will never change, I've made a static DataProvider for the whole class that populates each instances menu. I was hoping to populate the list with actual functions like so:

tmpArr.push({label:"Details...", funct:openDetailsMenu, args:""});

and then assign tmpArr to the DataProvider. Because the DataProvider is static the function that contains that code also needs to be static, but the functions in the array are non-static. At first it didn't seem like a problem, because when the user clicks on a menu item the drop down menu can call a non-static "executeFunction(funct, args)" on its parent. However, when I try to compile, the static function setting up the DataProvider it can't find the non-static functions being passed. If the compiler would just trust me the code would work fine!

The simple solution is to just pass strings and use a switch statement to call functions based on that, but that's big, ugly, inelegant, and difficult to maintain, especially if something inherits from this class. The simpler solution is to just make the DataProvider non-static, but I'm wondering if anyone else has a good way of dealing with this? Making the static function able to see its non-static brethren?

Thanks.

© Stack Overflow or respective owner

Related posts about best-practices

Related posts about actionscript-3