自定义效果Effect时遇到的小问题-EffectInstance与IEffectInstance(原创)

2

本文作者:dmh2002  发布于:2008-4-5  分类:Flex  点击:


   今天在研究自定义效果Effect时遇到了一个小问题,因为是拿到了一位前辈发给我的源码,所以当我发觉编译器提示出错时,有点蒙~

   override protected function initInstance(instance:EffectInstance):void
   错误提示为:不能兼容的覆盖

   不可能啊,不说那位前辈一定是编译通过才会发给我这份源码的,就算是根据我的经验,也没有发觉有什么问题呀,不行就F1吧,可是也没有看出什么名堂来,想看看Effect类的源码,却也是因为被封装了起来而无法得见。

   会不会是我Flex安装出了问题?想来也不会这个原因吧,怎么办?抱着怀疑的态度,再看一个范例吧,再看的是《Flex第一步》这本书的一个范例,居然出现了同样的问题,此时隐隐觉得会不会是Flex版本问题呢?

   因为在学习Cairngorm的时候,是有发现Cairngorm在2.21里面放弃了很多原先的库类的,既然无法看到被扩展的源文件,那么最好的办法就是试试Flex中的代码提示了。

   Flex的代码提示功能就是强啊(深深的鄙视一下Flash9),重新自行输入,果然发现了问题所在,正确的写法为

   override protected function initInstance(instance:IEffectInstance):void

   EffectInstance与IEffectInstance一个是库类,一个是接口文件,想来这样的变化是想让程序代码更具有可读性吧,自以为这样的变化应该也是Flex3测试版与正式版的区别之一。

   总结一下:之所以兜了一个圈子,是因为打开的是别人的源文件,如果一开始就是自己写的话,良好的代码提示功能完全可以规避这样的问题,而如果大家以后再遇类似于不能兼容的覆盖这样的问题,不妨利用一下代码提示功能,当然如果可以看到被继承库类的源文件,研究一下当然是更好的。

2 Comments

3tion
原来正式版已经将类型改成接口了。
Jiang
呵呵,很好很好,其实这样的问题,我之前都有遇到过,在下载了PV3D的源代码后,放入到我的项目的类库引用里时,编译时也提示错误的,是PV3D里面的代码有错误,我也觉得没理由的呀,也只好跟着他的错误提示稍为修改它的源码就算了,没有再探究下去!

Write a comment ?