如上一篇博文所叙述的,一个很偶然的机会,我得知可以使用Javascript开发Fireworks插件,又注意到了视觉小伙伴的需求,于是便上手开发Fireworks Extension了。
很幸运的,在充斥着广告的搜素引擎中,我很快地发现已经有人撰写过关于Fireworks开发的教程。特此奉上链接 ,以免小伙伴们百度google之劳 。在此文中,作者很细致的讲解了Fireworks MX插架开发的步骤,按部就班地做下来,基本上你就可以写写简单的Fireworks插件了。但是,时光的飞逝总会为我们带来些变化,瞥见《实战 Fireworks MX 插件开发指南》的发布日期,2003年,那时候我应该还在学一元二次方程什么的东西,Fireworks也还没有被Adobe买下来。
本系列的文章,我会着重讲解Fireworks Extension开发中需要注意的东西,特别是一些《实战 Fireworks MX 插件开发指南》一文中没有提到的东西。
首先要给出的当然是Adobe那焕然一新的。
和网页开发一样,开发Adobe插件的时候,第一个要了解的就是DOM模型。
在日常视觉工作中,我们编辑的每一个Fireworks文件称作Document。通过全局的fw对象,我们有两种方法访问到document对象。
方法一:
fw.documents[documentIndex];
通过这种方法,我们可以通过文档的序数访问到文档。
方法二:
fw.getDocumentDOM();
通过方法二,我们可以直接访问到当前激活的文件。
获取document之后,其实我们仅能操作该document当前page里面的东西。
fw.getDocumentDOM().changeCurrentPage(pageIndex);
通过changeCurrentPage方法,可以切换当前的page。在document对象中有一个pagesCount属性,返回page的总数。
在之后我们就可以访问到我们需要操作的各种object了。在Fireworks中,层文件夹也是一个element object, 你需要通过isLayer方法来判断元素是不是层。在document对象中,document.layers属性会储存所有document中的层对象的引用,无论怎么嵌套的层都可以在这个数组中直接遍历找到。
和获取document的方法类似,获取element也有两种方法。
方法一:
fw.selection[selectIndex];
方法二:
document.layers[layerIndex].elems[elementIndex];
两个函数的区别也和docment一样。
通过Firewokrs暴露出的接口,可以看到,Adobe更希望我们直接对dom进行操作,提供了两个直接获取当前文档和当前选中对象的函数。下一篇博文中我将进一步介绍Fireworks dom操作中的其他一些细节。
转发请注明出处: