我是这个主题的新手,很抱歉,如果我错过了一些基础知识。
我想使用Adobe Extension Builder 2.1在Flash Builder 4.6中制作adobe premiere CC扩展,我想让应用程序逻辑远离设计。
我已阅读Flex: How to keep code away from MXML,我知道Code Behind模式的工作原理,但在创建扩展程序时我不知道如何执行此操作。
我开始了一个新的Adobe Application Extension Project
project1Premiere.as
package
{
import com.adobe.csawlib.premiere.Premiere;
import com.adobe.csxs.types.Extension;
import com.adobe.premiere.*;
import spark.components.TextInput;
//re-declaring txt declared in project1.mxml
public var txt:spark.components.TextInput;
//Use CSExtension rather than WindowedApplication, as the base application
//class for extensions.
//This class previously was project1Premiere
public class CSExtension extends Extension
{
public static function run():void
{
var app:App = Premiere.app;
//your Premiere code here
txt.text = "testing...";
}
}
}
project1.mxml
<?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 PR code" click="project1Premiere.run()" enabled="{hostName.indexOf('premiere') > -1}"/>
<s:TextInput id="txt"/>
</s:VGroup>
我发现了这个错误:
在源路径中找到的文件不能包含多个外部可见定义。 txt; CSExtension project1Premiere.as / project1 / src
我在.mxml文件的根目录中缺少一些属性来引用.as?
提前致谢,
菲利普。
答案 0 :(得分:0)
我完全不在我的联盟中试图回答这个问题但是我想试一试。
更改public var txt:spark.components.TextInput;
到
public var txt:spark.components.TextInput = new spark.components.TextInput;
改变什么?
我只读了一些关于某些常见类的内容,这些类不需要使用new
运算符进行实例化,但能够动态添加属性。如果TextInput不是其中一个类,那么稍后在不创建实例的情况下设置它的.text
属性可能会导致问题。我不完全理解它,但它不是在黑暗中完全刺伤。