FlashCC用のエクステンションテスト

まあ、なんだこりゃ?ってやつなんですが、Flashでドキュメントの切り替えを捉えたいとのことでしたので、やってみたサンプルパネルです。一言申し添えておくと、JSFLの構成舐めまわしてある程度理解できたものの、そう深い理解を得られたわけではないと言うことです。
なんだかんだで、動作自体は正常です。ご参考までに。

メインのUIです。

index.html

<!doctype html>
<html>
<head>
<meta charset=”utf-8″>
<link rel=”stylesheet” href=”css/styles.css”/>
<link id=”hostStyle” rel=”stylesheet” href=”css/theme.css”/>
<title>Property Explorer</title>
</head>
<body class=”ps-cs6″>
   

   

http://js/libs/CSInterface-4.0.0.js
http://js/libs/jquery-2.0.2.min.js

http://js/themeManager.js
http://js/main.js
</body>
</html>

Property Explorer

http://js/libs/CSInterface-4.0.0.js
http://js/libs/jquery-2.0.2.min.js
http://js/themeManager.js
http://js/main.js

そしてJavascriptファイルですが、こちらはV8側です。今回の構成はシーモンキー用のファイルは用意しておりません。こちらのファイルにハードコードしてあります。

main.js

(function () {
    ‘use strict’;
    var csInterface = new CSInterface();
    var activeDoc = “”;
    csInterface.evalScript(‘function getNm(){try{return fl.getDocumentDOM().name;}catch(e){return null};getNm();}’,
        function(payloads){
            if (payloads!=null) activeDoc = payloads;
        }
    );

    function init() {
        themeManager.init();
        csInterface.addEventListener(
            “com.adobe.events.flash.selectionChanged”,
            function(ev) {
                csInterface.evalScript(‘function getNm(){return fl.getDocumentDOM().name;}getNm();’, function(payloads){
                    if (activeDoc!=payloads){
                        document.getElementById(“message”).innerHTML = payloads;
                        activeDoc = payloads;
                    }
                });
        });
    }
    init();
}());

で、マニフェストはこんな風になるのです。

manifest.xml

<?xml version=”1.0″ encoding=”UTF-8″?>
<ExtensionManifest Version=”5.0″ ExtensionBundleId=”net.sytes.chuwa.flashtest” ExtensionBundleVersion=”1.0.0″
        ExtensionBundleName=”flashtest” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”&gt;
    <Author><![CDATA[Ten]]></Author>
    <Abstract><![CDATA[]]></Abstract>
    <ExtensionList>
        <Extension Id=”net.sytes.chuwa.flashtest” Version=”1.0.0″ />
    </ExtensionList>
    <ExecutionEnvironment>
        <HostList>
            <Host Name=”FLPR” Version=”14.0″/>
        </HostList>
        <LocaleList>
            <Locale Code=”All” />
        </LocaleList>
        <RequiredRuntimeList>
            <RequiredRuntime Name=”CSXS” Version=”5.0″ />
        </RequiredRuntimeList>
    </ExecutionEnvironment>
    <DispatchInfoList>
        <Extension Id=”net.sytes.chuwa.flashtest”>
            <DispatchInfo >
                <Resources>
                <MainPath>./index.html</MainPath>
                </Resources>
                <Lifecycle>
                    <AutoVisible>true</AutoVisible>
                </Lifecycle>
                <UI>
                    <Type>Panel</Type>
                    <Menu>Flash Test</Menu>
                    <Geometry>
                        <Size>
                            <Height>420</Height>
                            <Width>360</Width>
                        </Size>
                    </Geometry>
                    <Icons>
                        <Icon Type=”Normal”>./icons/PE_regular.png</Icon>
                        <Icon Type=”RollOver”>./icons/PE_active.png</Icon>
                    </Icons>
                </UI>
            </DispatchInfo>
        </Extension>
    </DispatchInfoList>
</ExtensionManifest>

動作イメージはこちら。

flashpanel1.png

ドキュメントの切り替えをリスナで検知し、アクティブなドキュメントの名前を取得しています。参考まで…

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中