如上一篇博文所叙述的,一个很偶然的机会,我得知可以使用Javascript开发Fireworks插件,又注意到了视觉小伙伴的需求,于是便上手开发Fireworks Extension了。

很幸运的,在充斥着广告的搜素引擎中,我很快地发现已经有人撰写过关于Fireworks开发的教程。特此奉上链接 实战 Fireworks MX 插件开发指南,以免小伙伴们百度google之劳 。在此文中,作者很细致的讲解了Fireworks MX插架开发的步骤,按部就班地做下来,基本上你就可以写写简单的Fireworks插件了。但是,时光的飞逝总会为我们带来些变化,瞥见《实战 Fireworks MX 插件开发指南》的发布日期,2003年,那时候我应该还在学一元二次方程什么的东西,Fireworks也还没有被Adobe买下来。

  本系列的文章,我会着重讲解Fireworks Extension开发中需要注意的东西,特别是一些《实战 Fireworks MX 插件开发指南》一文中没有提到的东西。

首先要给出的当然是Adobe那焕然一新的API接口

和网页开发一样,开发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操作中的其他一些细节。

转发请注明出处:http://www.cnblogs.com/Arthus/p/3740542.html

Fireworks Extension —— 开发篇(Dom模型)的更多相关文章

  1. [java开发篇][dom模块] 遍历解析xml

    http://blog.csdn.net/andie_guo/article/details/24844351 XML DOM节点树 XML DOM将XML文档作为树结构,树结构称为一个节点树.所有的 ...

  2. 【转载】MSXML应用总结 开发篇(上)

    原文:http://blog.sina.com.cn/s/blog_48f93b530100ejv9.html 本篇是接前文“MSXML应用总结 概念篇”写的,主要总结一下MSXML DOM接口的应用 ...

  3. E8.Net工作流平台开发篇

    E8.Net开发篇(一)   E8.Net开发框架有哪些源程序模型? E8.Net开发框架为开发企业流程应用系统提供了最佳实践的开发架构.范例及源代码,包括待办事项的组织.流程启动模型.处理模型.母版 ...

  4. .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

    上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...

  5. 整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

    整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的 ...

  6. 浏览器内核之 HTML 解释器和 DOM 模型

    微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 此文章是我最近在看的[WebKit 技术内幕]一书的一些理解和做的笔记.而[WebKit 技术内幕]是基 ...

  7. ProBuilder快速原型开发技术 ---不规则模型与材质

    ProBuilder开发模型的强大之处,还在于可以按照要求精确定制不规则模型.克隆镜像模型.给模型着色以及添加材质等,下面笔者就这几方面进行讲解. 一:定制不规则模型 PB有一个专门定制不规则模型的功 ...

  8. 华清远见金牌讲师名家大讲堂Android开发篇成功举办

    2014年3月5日.12日华清远见金牌讲师名家大讲堂(以下简称名家大讲堂)在线讲座全新升级开讲,至此拉开了新一年名家大讲堂的序幕! 华清远见名家大讲堂作为业内颇具影响力的公益免 费线上课程,自2009 ...

  9. 开年钜献:华清远见金牌讲师名家大讲堂(Android开发篇)

        华清远见作为嵌入式培训领导品牌,嵌入式就业课程已成为业内公认的专业人才培养体系!华清远见致力于让更多嵌入式技术爱好者及在校大学生获得一线嵌入式系统开发关键技术应用的经验,于2009年始开办名家 ...

随机推荐

  1. HDOJ 1097 A hard puzzle(循环问题)

    Problem Description lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how ...

  2. 《Linear Algebra and Its Applications》-chaper2-矩阵代数-分块矩阵

    分块矩阵的概念: 在矩阵的实际应用中,为了形式的更加简化我们将一个较大的矩阵的内部进行一定的划分,使之成为几个小矩阵,然后在表大矩阵的时候,矩阵的内部元素就用小矩阵代替. 进行了这一步简化,我们就要分 ...

  3. selenium webdriver python 环境搭建

    1. 安装python https://www.python.org/getit/ 选择2.7版本,下载安装即可. 验证是否安装成功:打开cmd,输入"python -V",显示p ...

  4. iOS NSInvocation的学习

    用途: NSInvocation的作用和performSelector:withObject:的作用是一样的:用于iOS编程中调用某个对象的消息. performSelector:withObject ...

  5. Android消息机制(2)

    在Android 中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易.更好地架构系统,避免一些低级的错误. 下面我们分析下程序的运行过程: 1 ...

  6. [转] postgresql常用命令

    PS: 数据库安装后,里面的每个数据库有自己的用户密码,需要dump的时候,指定用户pg_dump -U xxx <数据库>  > 某个地址 最近一直在学习Postgresql,下面 ...

  7. Java基础知识强化75:正则表达式之分割功能(字符串中的数字排序案例)

    1. 案例分析: 我有如下一个字符串:"91 27 46 38 50" 写代码实现最终输出结果是:"27 38 46 50 91" 分析:    (1)定义一个 ...

  8. 通过yum升级CentOS/RHEL最小化安装

    1.如果你有安装CentOS / RHEL最小服务器安装,您可能有很多麻烦没有安装包 2.有一种方法来安装所有的包,需要一个基本的服务器,使用yum groupinstall命令 3.从最小的安装基本 ...

  9. Tab标签栏 切换 权威总结

    angular的标签栏,有两种方法实现: 内容全部加载到页面中,再利用ng-show指令. 将每一块要加载的内容做成模板,利用ng-if指令加载. 用bootstrap的tab组件 用angular的 ...

  10. Hyper-V虚拟机和主机的网络配置

    Hyper-V虚拟机和主机的网络配置 方式1.共享式 这种方式是将Hyper-V内部的虚拟网络与外部网络共享.使得内部是一个私有的网络.属于NAT的类型.(不知道这么说对不对) 优点: 相对来说属于私 ...