论坛首页 编程语言技术论坛

利用ActionScript 3的libs胶合一个流程设计器.

浏览 1988 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-10   最后修改:2010-12-10
程序员这个职业,一多半的时间是在找一些别人的库,剩下的时间来写一些glue.

好吧.为了glue一个流程设计器. 我花了大量的时间找到了一些libs. 嗯.

0> 首先介绍一个序列化的lib. FlexXB

  相信做流程设计器的都知道这个工具的作用在哪.

  它的用法跟XStream几乎相同. 在as3的class的属性上打一些 [metatag].(类似于annotation)

  注意点: 1) 如果某属性是Array.而此对象不希望被序列化.但是Array的item希望被序列化.请将metatag  alias属性设置为 "*"

          2) 对象排序请用ordered属性.父类与子类有相同的order数字排序. 父类优先.

          3) 序列化的过程中,serialzer一般不会出问题.反序列化的过程中.如果抛出 npe. 需要先processType() 再deserializer. 反序列化一定(是我的建议)要携带class参数.

  这个lib的作者是一个罗马尼亚的as3 全职开发 Alex. 很nice的一个人. 邮件回复帮了我很多.

1> 还有一个很tween库,帮助我做了一个很炫的流程执行路径重现功能. greensock-as

  这是一个tween lib. 缓动库. 这是很有用的. 要做这个功能的灵感在于 18M的bpm monitor中实现了此功能.

  具体需要这个库的原因是: 这种持续动画,且有连贯性的动作.需要阻塞的功能.而另外一种实现是在每次tween之后的complete事件call下一次tween. 最终你的程序会变成反序的递归动作.实现起来会让你觉得很恶心.

  这个库帮助你把恶心的部分做掉了. 你只需要在timeline上append一些tween就等timeline往前走就好.

2> tooltip库, 没有炫彩tooltip都不好意思做tooltip.嗯.hybrid.虽然我查看包名是ui.hyhird.com. 但是未找到这个包的开源地址. 下面有一个fla文件提供下载可以用.

  tooltip这种东西其实就是要一个效果.有专业公司的开源tooltip为什么不用呢.这个tooltip主要用在MouseOver的时候显示一下node状态.亦或者是node的流程变量信息.不多解释.


3> 最后是json处理lib. 这个大家几乎都在用as3corelib

  既然是core lib. 而且package名还是com.adobe开头. 具体也应该清楚此库的作用.跟apache一些utils库作用无异. 我只是处理了一些json串,此串会被解析为一个as3 的Object.



好啦.好啦. 别催..


好吧. 那就再来一个.最后一个. 算是附送.

9> 来一个Code Syntax Highlighting的lib.  as3CodeHighlighting

  作用在哪. 作用在哪?. 嗯. 其实作用很大. 在所谓的流程设计器中其实都存在一种状态是xml态. 在这个态别下.由于是纯的xml. 你很难阅读. 所以highlights就很有用.当然还有另外一种方式来实现所谓的代码高亮. Flex页面嵌入HtmlText就行了.js有很多高亮库. 当然我推荐这种是as3原生支持的.

  这个库有一个很好的feature/bug. 你必须用了才知道.嗯.


你会发现你前端画面展示还没做呢. 嗯. 是还没做.但是后端功能基本都搞定了.

0xFFFFFF> 嗯.前端不能放过.ObjectHandler . 这个站的主站需要在某物的带领下才能到达.

  objectHandler的作用就是让你快速达成所谓物件drag & copy .resize.rotate. 你如果需要制作一个流程设计器.你应该知道这意味着什么. 我不说.嗯.我不说!.


  本来还需要介绍一个 robotlegs as3 微架构 框架. (罗伯特的腿,微架构是他说的.不是我.它的DI是直接用了swiz的DI .). 我唤他为"假腿"框架.典型的mvcs框架. s是后端服务的意思.类似mvcorm
  不过这个框架会污染model. 果断还是没有用.有兴趣的可以看一下.最终自己处理了整个结构,没有用任何mvc框架.


  差不多了. 你要挤多少胶水去 glue..现在只取决于你自己胶水的强力程度了..  

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics