码迷,mamicode.com
首页 > 编程语言 > 详细

Adobe Illustrator工程与C++工程消息传递

时间:2014-12-16 21:07:37      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:adobe illustrator   flash builder   界面   c++   adobe   

   最近做项目,在C++平台下开发Adobe Illustrator的插件,设计界面UI要用到Flash Builder建立的Adobe Application Extension Project中的Adobe Illustrator平台下的工程。这篇文章介绍如何与C++工程进行消息交互。
   首先,根据我的上一篇文章介绍新建一个UI工程,切换到设计界面。在面板上拖入控件,如下图所示。
bubuko.com,布布扣
拖进去按钮之后,添加单击事件。如果拖入文本输入框,给一个ID号
bubuko.com,布布扣bubuko.com,布布扣
切换到源代码模式,根据Adobe Illustrator开发提供的TutorialUI工程示例代码。在初始化方法中加入:
    CSInterface.instance.addEventListener(GET_PARAMS_REQ, respondToParams);
    // Dispatch ready event
    var event : CSXSEvent = new CSXSEvent(DIALOG_READY, CSXSEventScope.APPLICATION);
    CSInterface.instance.dispatchEvent(event);

第一行表示接受C++工程传入的监听,后两行表示对话框启动分发给C++的消息事件。其中,
   // Events we dispatch
   private static const DIALOG_READY : String = "com.lm.shpToAI.shpToAIDialogReady";     
   // Events we listen out for
   private static const GET_PARAMS_REQ : String = "com.lm.shpToAI.shpToAIGetParamsReq";
respondToParams方法实现C++传入的消息后续的处理。

对于按钮分发事件,实现如下代码即可,将要传出的数据写入到一个payload XML对象中,然后利用CSInterface.instance.dispatch这个事件就可以了。

    var payload : XML = <payload>
          <cancelled>{cancelled}</cancelled>
          <editText>{editText.text}</editText>
          <nextText>{nextText.text}</nextText>
         </payload>;
   
    var event : CSXSEvent = new CSXSEvent(GET_PARAMS_RESP, CSXSEventScope.APPLICATION, payload);
    CSInterface.instance.dispatchEvent(event);

工程——属性——运行配置(调试配置)
bubuko.com,布布扣
运行即可在AI界面出现你的扩展UI了。
bubuko.com,布布扣
我也是才接触,可能有很多表达问题,希望谅解。

Adobe Illustrator工程与C++工程消息传递

标签:adobe illustrator   flash builder   界面   c++   adobe   

原文地址:http://blog.csdn.net/liming199364/article/details/41964675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!