2009年10月アーカイブ

10)簡単なプログラム

| コメント(0)

091015勉強会の復習です。

まずはテキストフレームを作りました。

	var myDocu = app.activeDocument;
	var myTF = myDocu.textFrames.add();

次にサイズを変更して内容をセット

	var myDocu = app.activeDocument;
	var myTF = myDocu.textFrames.add();
	myTF.visibleBounds = Array(0,0,10,200);
	myTF.contents = "こんにちは世界";

さらに段落スタイルをセット

	var myDocu = app.activeDocument;
	var myTF = myDocu.textFrames.add();
	myTF.visibleBounds = Array(0,0,10,200);
	myTF.contents = "こんにちは世界";
	myTF.paragraphs[0].appliedParagraphStyle = "ABC";

boundsのセット方法とか段落スタイルの当て方とか
調べながらなのでけっこう時間がかかりました。

最後に関数化して繰り返し文で呼び出しました。

for(var i = 0;i < 10;i++){
	BENKYOU(i + "こんばんは",i);
}

function BENKYOU(myMsg,Y1){
	var Y2 = Y1 * 10;
	var myDocu = app.activeDocument;
	var myTF = myDocu.textFrames.add();
	myTF.visibleBounds = Array(Y2,0,Y2 + 10,200);
	myTF.contents = myMsg;
	myTF.paragraphs[0].appliedParagraphStyle = "ABC";
}

さらにif文を入れてif文の練習

for(var i = 0;i < 10;i++){
	BENKYOU(i + "こんばんは",i);
	if(i == 5){break;}
}

function BENKYOU(myMsg,Y1){
	var Y2 = Y1 * 10;
	var myDocu = app.activeDocument;
	var myTF = myDocu.textFrames.add();
	myTF.visibleBounds = Array(Y2,0,Y2 + 10,200);
	myTF.contents = myMsg;
	myTF.paragraphs[0].appliedParagraphStyle = "ABC";
}

これだけで1時間半。おつかれさまです。
これで少しスクリプトになじめたら幸いです。

スクリプト勉強会復習

| コメント(0)

091015のスクリプト勉強会
JavaScriptのカテゴリにスクリプト勉強会で話した内容をアップしました。

左メニューのJavaScript基本からお入り下さい。
作ったスクリプトは後日アップします。

大量アップでRSS購読されている人にはスパムみたいになって申し訳ない。

09)演算子

| コメント(0)

計算です。+−×÷割った余り。
これだけつかえれば十分です。

X = A+1;//変数Xに変数A+1を入れる
X = X-1;//変数Xに変数A-1を入れる
X = N*5;//変数Xに変数N×5を入れる
X = N/2;//変数Xに変数N÷2を入れる
X = 5 % 2;//=>1になる。割ったあまり。

var myVal = 3
if(myVal % 2 == 1){
	//もし変数Nを2で割ったあまりが1なら
    alert("変数myValは奇数です。");
}else{
	//そうでないなら
    alert("変数myValは偶数です。");
}

08)関数

| コメント(0)

関数と読んでいいのか、コマンドと読んでいいのか・・・メソッドなのかハンドラなのかなんだかわかりません。

var Adnum=Number("123.456");//文字列を数値にする

みたいに値を返します。カッコがついててそのなかに引数を入れる事が多いです。

alert("こんにちは");

も関数です。

var Adnum=Number("123.456");//文字列を数値にする
alert(Adnum);
var Anum=parseInt("123.456");//文字列を整数にする
alert(Anum);
var val=eval("1+5+6+7+8+9");//文字列を計算する
alert(val);
var myStr=prompt("計算式を入力して下さい");//たずねる
var val2=eval(myStr);//文字列を計算する
alert(val2);

自分でハンドラ(関数)を作る事も出来ます。

myDisp("あいうえお");//自分で作った関数Dispを呼び出す。

function myDisp(myStr){
    //自分が作った関数Dispカッコの中の変数に渡された値が入る。
    alert(myStr + "です。");
}

07)くりかえしの処理

| コメント(0)

くりかえし1
1から10まで順に繰り返す。InDesignなら1ページから10ページまで処理をするという時にrepeat文を使います。くりかえしでもっともよく使う処理が下です。下記は変数Nに0〜9までの値を順番に入れながら実行します。

for(var N = 0;N < 10;N++){
    alert(N);
}

くりかえし2
無限に繰り返す処理を入れある条件が成立したら処理を終わります。

var num=0;
while(num<10){
	alert(num+"です。");
	num=num+1;
}

breakを使って途中で抜ける事も出来ます。

var num=0;
while(num<10){
	num=num+1;
	if(num > 5){
		break;
	}
}
alert(num+"です。");

くりかえし3
配列変数のなかを1つづつ変数に入れます。よく使います。

var meishiFile = Array("たけうち","森田","おおもり","ばば","なかむら");
var arrayCount = meishiFile.length;
for(var N = 0;N<arrayCount;N++){
	alert(meishiFile[N] + "さん");
}

06)if文

| コメント(0)

「もしも〜なら」という処理です。

var AAA = "あいうえお";
if (AAA == "あいうえお"){
	alert("あいうえおです。");
}

「もし〜ではなかったら」の場合は下記のように書きます。

var AAA = "あいうえお";
if (AAA != "あいうえお"){
	alert("あいうえおではありません。");
}

「もしも〜なら」と「そうではなくて〜なら」と「それ以外なら」という
ように条件によって振り分ける場合は下のように書きます。

var AAA = "あいうえお";
if (AAA == "あいうえお"){
	alert("あいうえおです。");
}else if(AAA == "かきくけこ"){
	alert("あいうえおです。");
}else{
	alert("それ以外です。");
}

「もしも〜でさらに〜なら」と「もしも〜または〜なら」というように2つ
の条件によって振り分ける場合は下のように書きます。

var AAA = -10;
if (0 < AAA && AAA < 20){
	alert("変数AAAは0より大きく20より小さい");
}
if (0 > AAA || AAA > 20){
	alert("変数AAAは0より小さいまたは20より大きい");
}

以上のようにif文はかなり簡単ですがif文そのものよりもどこでif文を使う
かという考え方のほうが理解しにくいのかもしれません
(switch文があるのですが、とりあえずは上で代用できます。)

05)配列

| コメント(0)

変数は何でも入る名前のついた入れ物と書きましたが配列はその入れ物の中にさらに仕切りがあり番号がついているイメージです。例えば名刺ファイルがあったとします。その中に名刺を入れます。0から順に名刺を入れていきます。(JavaScriptでは0から数えます)0番目は"たけうち"さん、1番目は"森田"さん、2番目は"おおもり"さん、3番目は"ばば"さん、4番目は"なかむら"さんといった感じです。あとで取り出すときに、名刺ファイルの4番目とか0番目から順番に全部の名刺とかいうように取り出します。

var meishiFile = Array("たけうち","森田","おおもり","ばば","なかむら");
alert(meishiFile[0] + "さん");

=>"たけうちさん"

というようになります。この配列がわかりにくいのですが例えばIllustratorで選択したアイテムを調べると選択アイテムは1つとは限らないので複数の配列で値が帰ってきます。そこから選択アイテムの1つめといったように取り出します。

変数meishiFileに1つめは「たけうち」2つめは「森田」といれる。取り出す
ときはmeishiFIleの0番目というように取り出す。

04)変数

| コメント(0)

変数は入れ物です。名前のついた入れ物で、なんでも入ります。取り出す
ときは入れ物の名前を指定してやると中身を見ることができます。変数には
好きな名前をつけることができます。

var myStr = "こんにちは";
alert(myStr);

var X = 10;
var myStr = "変数Xの内容は" + X + "です。";
alert(myStr);

もちろん変数ですから数字も入れることができます。

var X = 10;//変数Xに10を入れる
var Y = 50;//変数Yに50を入れる
alert(X + Y);//変数X + Yの結果をダイアログに表示

※//はコメントで、プログラムでは--以降の文字は無視されます。

01.jpg

変数の種類と変数の型変換

JavaScriptでは変数の型はあいまいですが、通常スクリプト言語では下記のような変数の型があります。
boolean--真偽値
integer--整数
double--実数
string--文字列
Array--配列

var myNum = 1.5258
myNum = parseInt(myNum);
alert(myNum);

変数1.5258を整数切り捨てしたため結果は1になりました。

var Xstr = "10";
var Ystr = "50";
alert(Xstr+Ystr);

XstrもYstrも文字列なので結果は"10"+"50"で"1050"になります。

var Xint = 10;
var Yint = 50;
alert(Xint+Yint);

XstrもYstrも整数なので結果は10+50で60になります。

スクリプト勉強会終わりました。

| コメント(7)

今回はあまり準備しなかったので楽でした。
会場には15人ほど来られたのかな。思ったより多くてびっくり。
6〜8人ぐらいと思ってました。Script組みたいけどきっかけがない人が多いのかな。

内容は、せうぞーさんの表スクリプトの読み解き方とカスタマイズ。
その後ExtendScriptToolKitの使い方や資料。
そして、ざっくりと変数や構文、関数を口頭で説明してこのあたりで1時間。

5分ほど休憩して、InDesignにtextFramesを作成し
visibleBoundsを設定して
「こんにちは世界」を出して、段落スタイルを当てて
それを関数化して繰り返しで10個つくる。
っていうのを一緒に考えながら作って1時間半ほど。
途中、Scriptが動かない人はおおもりさんばばさんにも見てもらいました。

合計2時間半にわたる長丁場。みなさんお疲れさまです。
ノートパソコン持ってきていない人は退屈じゃなかっただろうか?
難しすぎなかったか?伝わったか?いろいろ疑問に残りますが
えむさん、なんでやねんさんからは「わかりやすかったよ」と言っていただき安心。

大人数の部屋であれやったら退屈で寝る人続出かなぁ。

その後、コアなメンバーだけで飲み会に突入。
勉強会に参加してた方ともお話したかったなぁ。それがちょっと残念。
次回あるのでよろしくです。

今日は多言語の勉強会。毎日の分科会たいへんですがえむさんホントにありがとうございます。

(勉強会終了後はその場で解散が多いようです。毎日飲んでたらたいへんだよね。)

資料類は追ってアップしますのでしばらくお待ち下さい。

09/10/15日(木)スクリプト勉強会します。

| コメント(2)

すでに大阪DTPの勉強部屋 分科会の予定にアップされていますが、スクリプト勉強会を開催します。

■場所 メビック扇町 ●10/2〜23日 5F 503号室 ●10/26〜30日 4F 403号室 ●11/2〜12/4 4F 406号室
■日時 10月15日(木) 
 【スクリプトを作る】
 実際に1行づつスクリプトを書いて学んでいきます。
 ノートパソコンを持っている方は持ってきてください。
 無くてもかまわないです。

内容はまだ決めていません。が初心者向けにします。経験者がいらっしゃったら逆に講師役やってもらうかもです。実を言うとカスタマイズから入った方がいいのかif文とか説明した方がいいのか、質問コーナーだけにした方が良いのか悩んでいます。また、一度に理解できる範囲というものがあるのですごい事はなかなか出来ないでしょうね〜。
集ったメンバーのスキルや雰囲気によって内容を変えるかなと思っています。
こんなの作りたいとかあればコメントでも入れて下さいね。

※平日なので仕事の都合上遅れるかもしれませんが、ちゃんとフォローしていただけるメンバーがたくさんいらっしゃいますのでご安心下さい。

メビック扇町主催「この街のクリエイター博覧会4」

hiroshi.jpg

カテゴリ

OpenID対応しています OpenIDについて
Powered by Movable Type 8.0.2
漢字イラストロジック-脳トレ京
FREE ONLINE SUDOKU