mitchgrrt wrote:
>
>
> We have a situation where some ActionScript classes are automatically
> generated by an Ant script. So we can't edit them because they are
> regenerated on each build.
>
> I want to make one function in one of these classes behave
> differently. If I had normal source code editing available, I could
> just add a line to the function and be done.
How about extending the Ant generated classes and overriding the function?
Paul
>
> I tried rewriting the function using prototype. It didn't quite work.
> Doing some reading, it sounds like this would have worked with old
> versions of Flex but no longer with Flex 3. Here's a little example:
>
> public static function createJunk():void {
> junk1.prototype["f1"] = function ():void { Alert.show("junk1 f1
> override"); };
> junk1.prototype["f2"] = function ():void { Alert.show("junk1
> f2"); };
>
> var j:junk1 = new junk1();
> j["f1"]();
> j["f2"]();
> }
>
> class junk1 {
> import mx.controls.Alert;
> public function f1():void { Alert.show("junk1 f1"); }
> }
>
> The call to f2 works, showing "junk1 f2", but the call to f1 doesn't
> get overwritten. It still shows "junk1 f1".
>
> Doing some reading, I found here
> <http://livedocs.adobe.com/flex/3/html/help.html?content=04_OO_Programming_12.html>
> that
> "fixed properties are always preferred over prototype properties"
> which explains the behavior.
>
> Does anybody know of a way to use prototype, or some other clever
> trick, to overwrite a function at runtime? Thanks.
>
>
>