问题背后的代码(Adobe Premiere CC Extension)

时间:2014-11-05 09:59:20

标签: actionscript-3 flex adobe code-behind

我是这个主题的新手,很抱歉,如果我错过了一些基础知识。

我想使用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?

提前致谢,

菲利普。

1 个答案:

答案 0 :(得分:0)

我完全不在我的联盟中试图回答这个问题但是我想试一试。 更改public var txt:spark.components.TextInput;

public var txt:spark.components.TextInput = new spark.components.TextInput;

改变什么? 我只读了一些关于某些常见类的内容,这些类不需要使用new运算符进行实例化,但能够动态添加属性。如果TextInput不是其中一个类,那么稍后在不创建实例的情况下设置它的.text属性可能会导致问题。我不完全理解它,但它不是在黑暗中完全刺伤。