おいしいAS3 -15ページ目

ExtendScript ToolKitのどうにかしてほしいこと

CS5になってもまだ直ってなかったのか
それともこれは仕様なのか…

Mac限定のいやがらせなのか?


日本語のところでBackSpaceすると
1byteだけ削除して文字化けする
(時々見えない文字がのこって
バグの原因になったりする)

おなじく日本語入力の周辺だと
カーソルがあらぬ所にワープする
(多分byte数で位置覚えて
とんでるのか、いきなりワケの
わからないところに飛ぶことがある)

この辺はまあ日本語とか
入力する前提じゃないからなのだろう


ショートカットでのカットやコピーが
認識されない事がある
(コメントアウトしたところを丸ごと
コピーする時とか関数全体コピーする時とか
メニューからだとちゃんとできる)

カーソルが戻る

カーソルの表示位置と
現在編集位置が同期してないことがある

自動インデント時々さぼる


直してるだろうと期待したけど
全然直ってなかった…

JSXにUIがついてる!?

CS5購入

早速ちょっとユーティリティの中から
ExtendScript ToolKitをほじくりだし…

あら?

$おいしいAS3

主要ソフトに準じたアイコンデザインに
CS5の名をいただいている!

ちょっと見ない間にずいぶんと
偉くなってしまって…


ちょっと前までは

$おいしいAS3

こんないかにもおまけってカンジの子だったのに…


しかも昔はネットでPDF探して
リファレンスを手に入れて勉強してたのが

$おいしいAS3

ちゃんとヘルプにはいってるじゃない

インスタンスメソッド・プロパティ
クラスメソッド・プロパティ
コンストラクタが分けられて
調べやすくてナイス

ん?

ScriptUI?

これはもしかして
InDesignでしか使えなかった
dialogとかのUIが他のものでも
つかえるようになったってこと?

しかもaddEventListenerとかあるし!


しばらく見ないうちにこんなに…

とりあえずLightOut作ってみました



多分LightsOutってのは
一番プログラムが簡単なゲーム

ってことでXcode練習用に
LightsOutつくってみました



XIBとかはアップできないのでコードだけ




#import

@interface LightsOutAppDelegate : NSObject {
IBOutlet id output;
IBOutlet id lv;
IBOutlet id A1;
IBOutlet id A2;
IBOutlet id A3;
IBOutlet id A4;
IBOutlet id A5;
IBOutlet id B1;
IBOutlet id B2;
IBOutlet id B3;
IBOutlet id B4;
IBOutlet id B5;
IBOutlet id C1;
IBOutlet id C2;
IBOutlet id C3;
IBOutlet id C4;
IBOutlet id C5;
IBOutlet id D1;
IBOutlet id D2;
IBOutlet id D3;
IBOutlet id D4;
IBOutlet id D5;
IBOutlet id E1;
IBOutlet id E2;
IBOutlet id E3;
IBOutlet id E4;
IBOutlet id E5;
NSArray*btnList;
}
-(void)switchState:(int)ByTag;
-(void)reset:(int)Level;
- (IBAction)setLevel:(id)sender;
- (IBAction)ButtonPushed:(id)sender;
- (IBAction)resetButtonPushed:(id)sender;
@end

#import "LightsOutAppDelegate.h"

@implementation LightsOutAppDelegate
- (IBAction)ButtonPushed:(id)sender {
[self switchState:[sender tag]];
Boolean frg=YES;
btnList=[NSArray arrayWithObjects:A1,A2,A3,A4,A5,B1,B2,B3,B4,B5,C1,C2,C3,C4,C5,D1,D2,D3,D4,D5,E1,E2,E3,E4,E5,nil];
[sender setState:([sender state]+1)%2];
for(id btn in btnList){
if([btn state]==1){
frg=NO;
break;
}
}
if(frg){
[output setStringValue:@"YOU DID IT!"];
}
}
-(void)switchState:(int)ByTag{
int n=ByTag;
int m;
btnList=[NSArray arrayWithObjects:A1,A2,A3,A4,A5,B1,B2,B3,B4,B5,C1,C2,C3,C4,C5,D1,D2,D3,D4,D5,E1,E2,E3,E4,E5,nil];
for(id btn in btnList){
m=[btn tag];
if(floor(n/5)==floor(m/5)||n%5==m%5){
[btn setState:([btn state]+1)%2];
}
}
}
-(void)reset:(int)Level{
int tmpLst[25];
int n;
btnList=[NSArray arrayWithObjects:A1,A2,A3,A4,A5,B1,B2,B3,B4,B5,C1,C2,C3,C4,C5,D1,D2,D3,D4,D5,E1,E2,E3,E4,E5,nil];
for(id btn in btnList){
[btn setState:0];
}

for(int i=0;i<25;i++){
tmpLst[i]=i;
}
for(int i=0;i n=random()%(25-i);
[self switchState:tmpLst[n]];
for(int j=n;j<25;j++){
tmpLst[j]++;
}
}
[output setStringValue:@"GET ALL LIGHTS OUT"];
}
- (IBAction)resetButtonPushed:(id)sender{
[self reset:[lv intValue]];
};
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification{
}
- (IBAction)setLevel:(id)sender {
[lv setFloatValue:[sender floatValue]];
}
@end



ウインド上のオブジェクトのリストとかを
取得する方法がわからなかったので
ボタンを一個一個アウトレット登録してます

リセット時の処理で
25個のボタンからランダムに
レベル+1個を選ぶ処理は
Cの配列にはASみたいにpopとか
shiftとかspliceとかがないので
ちょっとへんな処理してます

NSArrayがああるから
Cの配列使う事は無いだろう
とか言いましたが使いましたね

まだまだわからないことの方が多いです