2011年5月3日火曜日

[JSFL]CS5でのexportPNG

仕事でJSFLを使う機会があるのですが、
フラッシュの素材を一括png書き出しするスクリプトを随分前に書きました。
僕はCS4を使ってたので、動作確認も勿論CS4で。

今日、CS5でスクリプトを実行したら、うまく動かないという話だったので、
やってみたら確かに動かない。
パネルには"ビットマップが大きすぎる。8000×8000以内じゃないとムリ"というエラーが吐かれていました。

exportPNGメソッドの使い方は以下のような感じ。
document.exportPNG([fileURI [, bCurrentPNGSettings [, bCurrentFrame]]]

bCurrentPNGSettingsはドキュメントによると
現在の PNG のパブリッシュ設定を使用するか(true)、PNG 書き出しダイアログボックスを表示するか(false)を指定するブール値

これがfalseの場合はFlash上で「イメージの書き出し」でpngを指定すると出てくるダイアログボックスが出てきます。
もちろん一括書き出しでそんな面倒な操作できないのでtrueにしておいたんですけど、
cs4ではうまくいっていたのにcs5だと前述のエラーが出て書き出せません。

そこで書き出し直前で、document.exportPublishProfileString()で得られるxml文字列を確認してみたところ、
width,heightとも60px。。。
その後いろいろ試したのですが、改善せず。

最後に省略していたbCurrentFrameをtrueにしてみました。

このbCurrentFrameはリファレンスによると
現在のフレームのみを書き出すか(true)、すべてのフレームをフレームごとに別の PNG ファイルとして書き出すか(false)を指定するブール値。このパラメーターはオプションです。デフォルト値は false です
だそうで、
要は、trueで現在の選択フレームのみを画像化するということです。

今回は1フレームしか必要なかったので、この値をtrueにするとすんなり動いてくれました。
よかったぁぁぁ。。。


余談ですが、このdocument.exportPNGは失敗するとfalseを返す仕様なのですが、
前述のエラー時には、trueを堂々と吐いてて、コノヤローと思いました。

JSFLは便利なんですが、ときたまこういうことしでかしてくれます。
あと微妙にバージョンで挙動が違ったりサポートしてなかったりするので注意です。

2011年4月20日水曜日

ドキュメントスキャナで電子化じゃぁぁ

先週、ドキュメントスキャナーを買ってみた。

目的は自炊ではなく、メモの電子化!!
最近、マインドマップで読書のメモをとろう運動をしてて
ささっと取り込めるスキャナが欲しかったので。

メモの類いは全部EverNoteに全部放りこんでおきたいなと。

購入したのは、CanonのDR-150



ScanSnapのポータブルのものに比べると若干重かったけど、
持ち運ぶ機会もそんなにないし。

USB電源なのが不安だったけど、今やってみたら問題ないレベルでした。
iPhoneで取り込んだメモみてニヤニヤしてます。
マインドマップ楽しいなー。
マインドマップ読書法はある程度慣れてきたら記事にしてみたいところ。


2011年4月17日日曜日

ブログはじめました。

日々のアレコレ、開発メモ、書評などなど書きつらねてみようと思います。