Illustrators RE 6

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

だらだらやってますが、あとは差し替えるるーちんを説明すると終わりです。
とりあえずもう少しです。結構細かいファンクション類も書きましたのでそちらから解説しておきますね。
実際にデータをどうとかするものではなくてターゲットを画面中央に表示したりターゲットを選択してみたりの余録的な部分です。

まずはこちら。
texRangeとオフセットからターゲットが含まれるテキストフレームを特定します。

function getFrame(tg, pos){ //tg:TextRanges
    var result = new Array();
    var frame = tg.parent.textFrames;
    var tgLen = tg.characters.length;
    var ofst = tg.characterOffset;
    for (var i=0;i<frame.length;i++){
        ofst -= frame[i].characters.length;
        if (ofst<=0) return frame[i];
        }
    }

単純にstoryの頭から文字数とtextFrameに含まれる文字数を参照しながら該当するフレームを探します。

こちらはターゲットを選択してハイライトするためのもの。

function tgtSlection(obj, fstPos, len){
    obj.characters[fstPos].select(false);
    for (var i=fstPos+1;i<fstPos+len;i++){
        obj.characters[i].select(true);
        }
    redraw();
    }

こちらもstoryの頭からのオフセット及び文字列の長さで選択範囲を決めます。実際に選択範囲を作るのはselectメソッドです。引数でtrueを渡せばOK。
最後のredraw()メソッドは画面表示を更新する為に必要です。

でもって、こっちは該当のtextFrameを画面中央に表示する為のルーチン。

function centerView(obj){
    var x = obj.position[0] + obj.width/2;
    var y = obj.position[1] + obj.height/2;
    app.activeDocument.activeView.centerPoint = [x, y];
    app.activeDocument.activeView.zoom= 1.5;
    }

いろいろやってみましたが、選択範囲を中心に持ってくるには、あまりにもコードが長ったらしくなるので含まれるテキストフレームの中心を画面の中心に合わせる様にしました。画面の拡大率は150%固定です。

最後はconfirmウインドウ用です。

function confirmReplace(){
    var result
    var cWin = new Window('dialog', 'Replace the target?', [100,100,400,170]);
    var stTx = cWin.add('statictext', [10,10,250,25] , "");
    var bt0 = cWin.add('button', [10,35,60,55], 'cancel', {name:'exit'});
    var bt1 = cWin.add('button', [70,35,130,55], 'skip', {name:'skip'});
    var bt2 = cWin.add('button', [140,35,200,55], 'replace', {name:'replace'});
    bt2.active = true;
    var bt3 = cWin.add('button', [210,35,270,55], 'all', {name:'all'});
    bt0.onClick = function (){
        result=-1;
        cWin.close();
        };
    bt1.onClick = function (){
        result=0;
        cWin.close();
        };
    bt2.onClick = function (){
        result=1;
        cWin.close();
        };
    bt3.onClick = function (){
        result=2;
        cWin.close();
        };
    cWin.show();
    return result;
    }

ちかんする?それとも...ってな感じの質問を投げかけてくるウインドウです。
選択によってちかんしたりパスしたり止めちゃったりいろいろ。

トラックバック(0)

トラックバックURL: /366

コメントする

このブログ記事について

このページは、tenが2011年8月 2日 12:26に書いたブログ記事です。

ひとつ前のブログ記事は「ExtensionBuilder Trial」です。

次のブログ記事は「QR codeにまつわる色々」です。

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

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

    follow? twitter...     
    available on exchange