查看完整版本: AS3的一个小令人痛苦bug

CYJB 2008-7-4 08:35

AS3的一个小令人痛苦bug

在AS3中,子类中覆盖父类中的方法时,要用override关键字.还要求方法定义必须相同.但是,帮助文档中的一个小bug,却令我相当不爽:@ .
在Array.indexOf的介绍中,分明写着
[size=4][color=red]AS3 function indexOf(searchElement:*,fromIndex:int=0):int[/color][/size]
所以,在覆盖方法时需要用
[color=red]AS3 override function indexOf(searchElement:*,fromIndex:int=0):int[/color]
来覆盖,可编译的结果却令人抓狂:提示[size=3]覆盖的方法定义错误!!要求与父类的方法具有相同的定义!![/size]
经过n多次试验,我发现indexOf的第二个参数不是int!!而是任意类型(*),使用
[size=4][color=black]AS3 override function indexOf(searchElement:*,fromIndex:[color=red]*[/color]=0):int[/color][/size]
就没有错误
这是一个Flash CS3的程序错误,还是Flash帮助文档的书写错误,还是我的电脑发神经?这就不知道了.但我希望大家注意一下,不要被这黑了.
同理,lastIndexOf也因写成
[size=4]AS3 override function lastIndexOf(searchElement:*,fromIndex:[color=red]*[/color]=0X7FFFFFFF):int[/size]
[size=4][/size]
[size=4][/size]
[size=4][/size]
[size=3]附:在覆盖join方法时,发现也有一些小问题:[/size]
[size=3]帮助文档上写的是[/size]
[size=4]AS3 function join(sep:*)[/size]
[size=3]但是,我写成[/size]
[size=4]AS3 override function join(sep:*="")[/size]
[size=3]和[/size]
[size=4]AS3 override function join(sep:*="\n"[/size][size=4])[/size]
[size=3]都没问题,我不知道是怎么回事,难道是覆盖方法中默认的字符串值不必相同??有谁能解释一下吗?[/size]

8765004 2008-7-4 15:17

给ADOBE写信呀
页: [1]
查看完整版本: AS3的一个小令人痛苦bug