2012.05.24 | 

こんにちはmuchoです。
いい季節ですねー。皐月。
さてさて表題の件です。

Flash内にテキスト入力欄を設置して日本語入力しようとすると
入力欄とは別の位置にIMEの小窓?が開いて確定後にテキストフォームに文字が入る。
不便だなー。でもこの問題ちょくちょく起きてたしなー。
と放置気味にしていたのですが、原因が分かりました。

環境ですが
Windows Vista
Firefox 12
Flash Player 11.2
OSはさておき、最新です・・・。

Pearl Cresent Page Saver Basicというブラウザウィンドウを
キャプチャするアドオンを入れてたのですが、
こいつが。Pearl Cresent Page Saver Basicが曲者でした。
どうもPearl Cresent Page Saver Basicのオプションで
「Flashコンテンツをキャプチャー」を有効にしていると
フォームに直接日本語入力できないようです。

ということでキャプチャするアドオンを乗り換えてみました。
FireShot - Webpage Screenshots: Capture + Annotate
https://addons.mozilla.org/en-US/firefox/addon/fireshot/
アイコンが分かりにくいですが設定いじれば機能的には問題なさそうです。

同じような現象で苦しんでる方(もしや少数民族?)
の助けになればいいなと思いメモ。

2012.05.11 | 

こんばんは。muchoです。
やっぱりコンプガチャとかAKB商法とかいやらしいですよね。
さてさて。今日は小ネタも小ネタ。
これまた以前にやったことあったんですが、今日使おうと思って、
えーとあれはどうするんだっけ?とググったりしたので
備忘録的にメモ




public function Main():void
{
	var l:int = 100;
	var points:Vector.< Point > = new Vector.< Point >(_length);
	for (var i:int = 0; i < l; i++)
		points[i] = new Point(int(Math.random() * 100), int(Math.random() * 100));

	_cells.sort(SortByXY);
	for (i = 0; i < l; i++)
		trace("key : " + i + " : " + _cells[i].x + ", " + _cells[i].y);

	_cells.sort(SortByYX);
	for (i = 0; i < l; i++)
		trace("key : " + i + " : " + _cells[i].x + ", " + _cells[i].y);

	// 無名関数を使うのもよし
	_cells.sort( function(a:*, b:*):int
	{
		if (a.x < b.x) return -1;
		else if (a.x > b.x) return 1;
		else 
		{
			if (a.y < b.y) return -1;
			else if (a.y > b.y) return 1;
			else return 0;
		}
	});
	for (i = 0; i < l; i++)
		trace("key : " + i + " : " + _cells[i].x + ", " + _cells[i].y);
}
		
private function SortByXY(a:*, b:*):int
{
	if (a.x < b.x) return -1;
	else if (a.x > b.x) return 1;
	else 
	{
		if (a.y < b.y) return -1;
		else if (a.y > b.y) return 1;
		else return 0;
	}
}

private function SortByYX(a:*, b:*):int
{
	if (a.y < b.y) return -1;
	else if (a.y > b.y) return 1;
	else 
	{
		if (a.x < b.x) return -1;
		else if (a.x > b.x) return 1;
		else return 0;
	}
}



ActionScript sort 関数 とかで検索しても出てこないのはどういうこと?
と思ったら、「ActionScript sort カスタム関数」 で検索したらAdobeのが見つかりました。
最悪それさえ覚えてればいいかも。

2012.04.27 | 

こんにちは。muchoです。
昨夜は会社で事務所移転の打ち上げをしたんですが、
盛り上がりすぎて近隣の皆様に大変なご迷惑をおかけしました。
申し訳ございませんでした。お詫び申し上げます。

さてさてさてさて。
前に一度書いて、えーとあれはどうするんだっけ?となったのでメモ。
デバッグプレイヤーでエラーがポップアップしないようにする方法です。
もう一つ、書き出しがデバッグモードかリリースモードかの判定もメモ。

不明なエラーイベントを取得するUncaughtErrorEventsクラスを使います。
loaderInfo、LoaderにaddEventListenerで使います。
書き出しのバージョンが10.1以上で使えます。

さらにキモなのがイベント発生時に e.preventDefault(); を入れて
デフォルト時の挙動を抑える方法です。これでエラーのポップアップは
しなくなります。



public function Main():void 
{
	// 書き出しのモード判定
	isDebug = Boolean(new Error().getStackTrace().search(/:[0-9]+]$/m) > -1);

	//予期せぬエラー表示対策
	loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
}

private function onUncaughtError(e:UncaughtErrorEvent):void
{
	e.preventDefault(); //←これがないとポップアップします。

	// デバッグ時にはエラーを把握するためにtraceしてみる
	if (isDebug) {
		trace(e.error.type+":"+	e.error.text);
	}
}



さりげなくハマったのが、書き出しのバージョン。
10.0と10.1の違いって、あれやこれや結構ありますね。。。

2012.04.24 | 

おはようございます。muchoです。

前回、MacOS版SublimeText2でCoffeeScriptを使えるようにしましたが、
Windowsでも同じようにしてしまおうということで、やってみました。
これまたいつの日か同じことをやることになりそうなのでメモ。

Node.jsもPythonも入ってない前提で

1.Python2.7のインストール
http://www.activestate.com/activepython/downloads
2.7.2.5のインストーラーを選択
デフォルトで"C:\Python27"にインストールされます。
とりあえずそのままやってみました。
コマンドプロンプトを起動して、python --version と打ってバージョン番号が
出ればPythonは無事完了。

2.Node.jsのインストール
http://nodejs.org/
私が試したときは0.6.15
何の選択肢も出ずに"C:\Program Files\nodejs"にインストールされます。
ええー。そこでいいのかー?と思ったんですが、これまたそのまま続行。
再びコマンドプロンプトを起動して、node -v か、npm -v
うまくいっていればバージョンが表示されます。
なんとnpmも一緒にインストールされてくれてました。ステキ。

3.CoffeeScriptのインストール
コマンドプロンプトで



npm install -g coffee-script


これで "C:\Users\<ユーザー名>\AppData\Roaming\npm\"にインストールされます。

4.SublimeText2にCoffeeScript用のパッケージを追加する
・コマンドパレットを起動して(
メニュー - Tools - Command Palette(Ctrl+Shift+P)
)
・Package Control: Install Package を選択
・パッケージの一覧からCoffeeScriptを選択
・メニュー - Preference - Browse Packages... を選択
・"Packages\CoffeeScript\Commands\CoffeeScript.sublime-build"を開いて
 下記のように修正



 {
"path": "$HOME/bin:/usr/local/bin:$PATH",
"cmd": ["coffee","-c","$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.coffee"
}
↓
{
"cmd": ["coffee.cmd","-c","$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.coffee"
}


以上で環境は出来上がりました。
確認のために以下のような適当なスクリプトを書いて
"hello.coffee"とか名前を付けて保存



console? log? "Hello world"


メニュー - Tools - Build System で CoffeeScriptを選択し、
メニュー - Tools - Build(ctrl+b)でビルド

うまくいけば[Finished]と表示されて、hello.coffeeと同じフォルダに
hello.jsが出来てるはずです。

2012.04.23 | 

こんばんは。muchoです。
今日は小ネタというか、いつの日か同じことをする日が来そうなのでメモ。

CoffeeScriptをSublimeText2で使えるようにする

1.シンタックスなどを追加



cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/
git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript


2.入れたファイルをCoffeeScriptのインストール先にあわせて設定を一部修正



~/Library/Application Support/Sublime Text 2/Packages/CoffeeScript/Commands/CoffeeScript.sublime-build
のパスを編集
"path": "$HOME/bin:/usr/local/bin:$PATH",
↓
"path": "/opt/local/bin",


で、SublimeText2を再起動。
これでTool-Buildでビルドできるようになります。