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

| コメント(0) | トラックバック(0)

まあ、なんだこりゃ?ってやつなんですが、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">
    <div id="message" class="messe_bdy">
    </div>
<script src="js/libs/CSInterface-4.0.0.js"></script>
<script src="js/libs/jquery-2.0.2.min.js"></script>

<script src="js/themeManager.js"></script>
<script src="js/main.js"></script>
</body>
</html> Property Explorer

そして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">
    <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

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

トラックバック(0)

トラックバックURL: /562

コメントする

このブログ記事について

このページは、tenが2015年10月13日 12:31に書いたブログ記事です。

ひとつ前のブログ記事は「Photoshop CC2015 JSONCallback list」です。

次のブログ記事は「QR Code Maker Proリリース!」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 5.12

    follow? twitter...     
    available on exchange