actionscript-3 – FlashDevelop中的Flex元数据编译器扩展教程
我一直在谷歌搜索过去2个小时,寻找一些关于如何在as3中添加我自己的自定义元数据标签的简单说明,但没有成功.我开始认为我可能不会搜索正确的术语.
问题 最后,我想要做的是在函数上添加自定义元数据,该函数将函数作为参数并确保给定函数具有正确的参数. 即我有以下功能: public function testCallback(callback:Function):void { callback("test"); } 当我这样调用它时,我想得到编译器错误: public function doNothing():void { // doing nothing } public function someRandomFunction():void // ... testCallback(doNothing); } 我想这样做的方法是通过这个元数据: [Callback(paramName="callback",callbackParams="string")] public function testCallback(callback:Function):void { callback("test"); } 扩展将在编译期间运行,如果传递的函数不包含正确的参数,则将抛出编译时错误.我认为使用flex2.compiler.util.ThreadLocalToolkit.logError(path,line,errorMessage);我能做到这一点. 搜索 我一直在谷歌搜索几个小时,找不到一个可以让我开始的简单教程.我发现了一些SDK错误报告(SDK-18718,SDK-26041),一个unfinished forum post,一个教程(?)在how to add a custom metadata in FlexBuilder(我正在使用FlashDevelop),一个not-so-useful answer in StackOverflow以及更多的死胡同. 帮助 到目前为止,据我所知,我将使用Java来创建扩展,然后,使用编译器命令,我将它添加到我的项目中.但是,我不知道开始需要什么. 我的两个主要问题是: 提前致谢! 更新 我已经能够在eclipse中创建一个Java项目,添加Flex库,实现IMxmlcExtension接口,并使用正确的MANIFEST文件将项目编译到jar中.不幸的是,在FlashDevelop中添加额外的-extension = MyTest.jar没有做任何事情. 如果它很有用,编译器的结果命令行是
更新2 Timofei Davydik帮助我缩小了问题的范围.似乎FlashDevelop是主要问题.创建扩展并在命令行中编译它.我在FlashDeveloper的论坛中开始了一个主题.如果您有兴趣,该主题是:-extension compiler option 更新3 Pilippe是正确的,似乎问题来自FlashDevelop使用Flex Compiler SHell (fcsh)的事实.我现在正在研究如何切换编译器. 解决方法
非常有趣的问题.我做了一些研究.是的,我们可以编写mxmlc扩展并添加一些自定义功能.但处理自定义元数据确实很复杂,需要很多时间来调试和探索flex编译器源.我在博客中创建了一篇关于扩展的帖子,您可以查看:
http://tim-davydik.blogspot.com/2012/09/flex-compiler-mxmlc-extensions-forcing.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |