2008年3月30日日曜日

フォルダ指定いろいろ

alert("マイドキュメント\n"+Folder.myDocuments);
alert("デスクトップ\n"+Folder.desktop);
alert("ゴミ箱\n"+Folder.trash);
alert("実行中のアプリのパッケージ\n"+Folder.appPackage);
alert("OSの種類\n"+Folder.fs);
alert("システムフォルダ\n"+Folder.system);
alert("ユーザ別アプリケーションデータの場所\n"+Folder.userData);
alert("システム用アプリケーションデータの場所\n"+Folder.appData);
alert("コモンファイルフォルダ\n"+Folder.commonFiles);
alert("テンプフォルダ\n"+Folder.temp);
alert("アプリケーションの実行イメージの場所\n"+Folder.startup);
alert("現在のフォルダ\n"+Folder.current);

ライブラリ見ながら全部やってみる。
知っておくと便利。保存先をデスクトップにしたくても、WINDOWSで動かないと困るもんね。

2008年3月20日木曜日

FizzBuzz問題.jsx

/*

FizzBuzz問題

1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、
5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

*/

var i
for(i=1;i<101;i++){
if(i%3==0 & i%5==0){
print("FizzBuzz");
}else if(i%3==0){
print("Fizz");
}else if(i%5==0){
print("Buzz");
}else{
print(i);
}
}

ネットで見かけたんでなんとなくやってみた。
合ってるかな、合ってるよね?
コンソール見ればちゃんとなってるし。

2008年3月15日土曜日

AdobeCS3のJavaScriptでXPathを使う

ExtendScript Toolkit 2 のライブラリを見ていると、なんか聞いた事のある言葉を見つけた。


XPath?
先日のスクリプトを流用して試してみる。
myXpath=myXml.xpath("/");
alert(myXpath);

???なんで2回言われる?
myXpath=myXml.xpath("/");
alert(myXpath[0]);

ふむ。
myXpath=myXml.xpath("/");
alert(myXpath[1]);

おっ
myXpath=myXml.xpath("/Koma/FileName");
alert(myXpath[1]);

おおっ
myXpath=myXml.xpath("/Koma/@name");
alert(myXpath[0]);

おおおっ!

2008年3月9日日曜日

AdobeCS3でJavaScriptにXMLを読み込む

AdobeCS3付属の「JavaScript Tools Guide」を読むと、
ExtendScript defines the XML object, which allows you to process XML with your JavaScript scripts. This
feature offers a subset of the functionality specified by the ECMA-357 specification (E4X).
と書いてある。

英語は苦手だけど、とにかくExtendScript内でXMLを使えるよ、と書いてあるのはわかる。
それを試してみた。

用意したXMLはこんな感じ。"test.xml"
<?xml version="1.0" encoding="UTF-8"?>
<Page>
<Koma name="コマA">
<FileName>testA.pdf</FileName>
<Xzahyou>10</Xzahyou>
<Yzahyou>10</Yzahyou>
</Koma>
<Koma name="コマB">
<FileName>testB.pdf</FileName>
<Xzahyou>20</Xzahyou>
<Yzahyou>10</Yzahyou>
</Koma>
<Koma name="コマC">
<FileName>testC.pdf</FileName>
<Xzahyou>30</Xzahyou>
<Yzahyou>10</Yzahyou>
</Koma>
</Page>

それをデスクトップに置いて、スクリプト。
var openFile=new File("~/Desktop/test.xml");
openFile.open ("r");
src=openFile.read();
myXml = new XML(src);

ここまででXMLファイルを読み込み、XMLを定義する。
alert(myXml);
するとこうなる。


要素を呼び出してみる。
alert(myXml.Koma[1].FileName[0]);
alert(myXml.Koma[0].@name);



すばらしい!

一応CS2でも試してみたが、やっぱり使えなかった。まあしょうがないか。

2008年3月8日土曜日

自分のブログをぐぐってみて

なんとなく、自分のブログタイトルをぐぐってみたら、
「カネムーメモ に一致する情報は見つかりませんでした。」
と出た……。

別にBlogger使ってるからって、自動でGoogleが拾ってくれるわけじゃないんだね。
どこからのリンクもなければそのページは存在しない。さすがグーグル。

アーカイブ残してもぐぐれなきゃ誰の役にもたたない、こりゃやばいってんで、自分のはてなブックマークに登録してみた。
これで拾ってくれるかな。

−−−追記−−−
翌朝9時、ちゃんと拾ってくれました。
さすがグーグル。

Adobe製品で外部JavaScriptをインクルードする

OpenSpaceさんとこの
■別ファイルに書かれたスクプトをリンクする
を実験してみる。

まず読み込まれる方、"shisyagonyu.jsx"
function shousu1(p){
var myVal=Math.round(p*10);
myVal=myVal/10;
return myVal
}

function shousu2(p){
var myVal=Math.round(p*100);
myVal=myVal/100;
return myVal
}

function shousu3(p){
var myVal=Math.round(p*1000);
myVal=myVal/1000;
return myVal
}

それで読み込む方、"ensyu.jsx"
//@include "shisyagonyu.jsx";

var enshu=3.141592653589793238462643383279502884;
alert(shousu2(enshu));

で、出た結果がこれ。

うん、よし。

外部スクリプトを読み込んで利用できるってことは、Ajaxでいうprototype.jsみたいに、Adobe製品でも使いやすいライブラリを作成して公開できるってこと。

InDesignはどうしてもユーザが限られちゃうけど、PhotoshopやIllustratorでやればかなり需要ありそうじゃないかい?

2008.04.05追記。
AdobeCS3のExtendScriptだと、この書き方は奨励しないみたい。正しくは、
#include "shisyagonyu.jsx"
と書くのだそうです。