as3 调用photoshop 脚本 :创建一组文件夹

                  Extension Builder 这个工具,可以为我们 利用as3的语法调用ps里面的功能,这样一来,我们就可以用熟悉的语法去写一下扩展工具。photoshop 脚本还可以支持jsx 等脚本,但是调试起来没事呀Extension Builder 那么方便。

            

                 psd2swf 里面的一个工具,提供了一个快速创建组件的文件夹,那么我们利用as3 编写一下,仅仅需要几行代码就可以完成这个任务了。但是as3 方面文档资料比较少,因此还是看js 哪个脚本进行猜测。

   js :  http://cssdk.host.adobe.com/sdk/1.0/docs/WebHelp/app_notes/ps_doc_model.htm

  as3 :http://cssdk.host.adobe.com/sdk/1.0/docs/WebHelp/references/csawlib/package-summary.html

 

一 、创建一个extension Project

 

 

 二 填写后工程名,选择我们要进行扩展的cs 系列的程序

 

 

 

创建Extension project后,会自动生成一段代码,而对应不同的cs 系列产品,可以对其进行编写脚本。这次我们选择ps,那是因为个人想尝试创建一组文件夹。当初查询文档的时候,一直以为有Group 就是创建一个组,然而发现layerSets 才是创建一个组文件夹。

 

 

var app:Application = Photoshop.app; 就是程序的入口

 

你可以 使用 文档 属性来创建一个200x200文档。

 var doc:Document=app.documents.add(200,200);//创建一个 大小为 200x200的文档

但是在没有创建文档之前调用 activeDocument  会报错,因此这个就需要对其做一个判断。否则会报null的情况。

 

LayerSets 里面提供了一些方法,这些方法可以参考文档,而刚开始接触这个也是猜测的,但是这个足够个人当前需求去满足创建一个组文件夹。

 

调试的时候,在菜单 window--》首先项 可以看到cs extendsion builder 这一项,然后根据自己的安装路径进行修正,这样flash builder 就能断点和调试了。 看起来很傻瓜的设置。

 

 

 

 

package 
{
	import com.adobe.csawlib.photoshop.Photoshop;
	import com.adobe.photoshop.*;
	
	public class pssPhotoshop
	{
		public static function run():void 
		{
			var app:Application = Photoshop.app;
			if(app.activeDocument)
			{
				var layerG:LayerSet=app.activeDocument.layerSets.add();
				layerG.name="Button_{name}";		
				var layer_disable:LayerSet=layerG.layerSets.add();
				var layer_down:LayerSet=layerG.layerSets.add();
				var layer_over:LayerSet=layerG.layerSets.add();
				var layer_normal:LayerSet=layerG.layerSets.add();
		
				layer_normal.name="normal"
				layer_over.name="over";
				layer_down.name="down";
				layer_disable.name="disable";			 
			}			
		}
	}
}

<?xml version="1.0" encoding="utf-8"?>
<csxs:CSExtension xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:csxs="com.adobe.csxs.core.*" applicationComplete="appComplete()">
	<fx:Script>
		<![CDATA[
		
			import com.adobe.csxs.core.CSInterface;

			
			[Bindable]
			private var hostName:String = HostObject.mainExtension;
			
			
			public function appComplete():void{
			 	CSInterface.instance.autoThemeColorChange = true;
			}
			
		]]>
	</fx:Script>
		
	<s:VGroup height="100%" width="100%" verticalAlign="middle" horizontalAlign="center">
		<s:Button label="Run PS code" click="pssPhotoshop.run()" enabled="{hostName.indexOf('photoshop') > -1}"/>
	</s:VGroup>
</csxs:CSExtension>


 

flex 预览之后,可以产生这个组文件夹了。看起来是不是很爽?这个api 提供了很多强大的功能。慢慢等挖掘一下吧

准备睡觉去

 

整个工程样貌,简单就这个小例子而已。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值