专注于 ActionScript 3.0 在各应用领域的研究。
« Papervision3D入门-使用Collada模型文件flash/flex 相关英语视频教程 2008-04-06 更新 »

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

   今天在研究自定义效果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测试版与正式版的区别之一。

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

  • quote 2.Jiang
  • http://www.jiangzone.com.cn
  • 呵呵,很好很好,其实这样的问题,我之前都有遇到过,在下载了PV3D的源代码后,放入到我的项目的类库引用里时,编译时也提示错误的,是PV3D里面的代码有错误,我也觉得没理由的呀,也只好跟着他的错误提示稍为修改它的源码就算了,没有再探究下去!
  • 2008-4-4 22:57:56 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 Code detection by Codefense

Copyright 2008-2010 DMH2002's Blog Some Rights Reserved.沪ICP备07021739号