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

最近做项目,在C++平台下开发Adobe Illustrator的插件,设计界面UI要用到Flash Builder建立的Adobe Application Extension Project中的Adobe Illustrator平台下的工程。这篇文章介绍如何与C++工程进行消息交互。

首先,根据我的上一篇文章介绍新建一个UI工程,切换到设计界面。在面板上拖入控件,如下图所示。

拖进去按钮之后,添加单击事件。如果拖入文本输入框,给一个ID号

切换到源代码模式,根据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);

工程——属性——运行配置(调试配置)

运行即可在AI界面出现你的扩展UI了。

我也是才接触,可能有很多表达问题,希望谅解。

时间: 2024-10-11 04:13:30

Adobe Illustrator工程与C++工程消息传递的相关文章

eclipse java工程和maven工程的互相转换

maven转为工程一般工程: 工程右键--->Maven--->Disable Maven Nature转为一般工程. 一般工程转为maven工程: 工程右键--->Configure--->Convert to Maven Project

AI (Adobe Illustrator)详细用法(四)

本节主要是介绍和形状相关的操作. 一.外观面板的使用 熟悉外观面板的使用很重要. 1.新增描边 外观面板可以让我们增加多个描边. 点击“新增描边”,系统自动添加一个描边. 选中文字,新增描边,可以修改描边的颜色和粗细. 2.改变描边的层 放大文字,可以像改变层一样,拖动描边到填色的下面,这个月描边就不会覆盖填充的颜色了. 3.多层描边 下图添加了四个描边,要注意描边的粗细和层次,第一个新建的在最下面. 4.为形状增加效果 点击效果——>变形——>弧形. 打开“变形选项”中的预览会发现只是针对最

Java工程转换为Maven工程-b

1. 前言 在开发中经常要建立一个Maven的子工程,对于没有模板的同学来说从Java工程来转换也是一个不错的选择.本文就如何从一个Java工程创建一个Maven工程做了一个介绍,相信对于将一个Java工程转换为Maven工程的工作也是有帮助的. 2. 创建Java工程. 创建一个Java工程,如下图所示: 3. 转换为Maven工程. 选中此工程 -> 右键 -> Configure -> Convert to Maven project.出现如下的截图,天上相关的信息即可:  点击F

Web工程与RMI工程进行联调

1.首先导出RMI工程中的Service和entity类 到web工程中,以jar包的形式 public class ServiceManagerImpl { private static ServiceRegist serviceRegist=null; public static ServiceRegist getServiceRegist(){ if(null==serviceRegist){ try { serviceRegist=(ServiceRegist)Naming.lookup

ggplot2 pdf import in Adobe Illustrator missing font AdobePiStd

The font AdobePiStd is missing. Affected text will be displayed using a substitute font. 缺少字体 AdobePiStd.将使用替换字体显示受影响的文本. . I solved this by copying the font file /Library/Application Support/Adobe/PDFL/8.0/Fonts/AdobePiStd.otf from my mac to my coll

Adobe Illustrator CS6 下载

Adobe Illustrator CS6[免序列号,完美激活破解]官方简体中文版 (破解版+官方正式版) 下载地址:http://vdisk.weibo.com/s/zAXcqxNo2_QMv 1.安装前的准备:请先点击下载Adobe Illustrator Cs6[AI cs6]中文破解版64位 / 32位简体中文版软件 同时提供一个:Adobe Illustrator Cs6注册机下载 同时解压文件 2.双击“安装文件”开始安装Adobe Illustrator Cs6[AI cs6] 如

QT4工程转换为QT5工程方法

1.  #include <QtGui/QApplication> ---> No such file or directory 问题的解决 (原因是Qt5源文件位置的改动)1).pro文件中,在 QT       += core gui 下面一行添加greaterThan(QT_MAJOR_VERSION, 4): QT += widgets2)在mian.cpp文件中将#include <QtGui/QApplication>修改为 #include <QAppli

复制工程或修改工程名字后找不到第三方库解决方法

问题: couldn't found -lwexin 等与第三方库有关的关键词报错,如上图. 解决方法:在工程文件中删掉第三方库的引用,然后再重新添加进来.command+B,OK. 复制工程或修改工程名字后找不到第三方库解决方法

iOS 工程套子工程,主工程和framework工程或.a静态库工程联调

一.主工程套Library(即.a)工程联调 1.新建一个主工程和一个Library工程,如何创建Library工程参照我另外一篇博客iOS 最新framework和.a静态库制作及使用全解但这个Library工程不需要编译成静态库 2.将静态库工程拖到主工程,我这里拖到下图箭头所指的UseA文件夹下(如果你要拖到其他目录,就要改Library Search Paths,下面我会介绍Search Paths路径相关知识) 3.将Library工程下Products目录下的.a文件拖入主工程的Li