2012年1月10日
いや、Array型にでも詰めて渡せやって話なんですが。
Function.applyメソッドを使えば呼び出すタイミングで勝手に引数の数やその関数が実行されるスコープまで指定できます。
引数はargumentsという配列に順番に格納されていますので、2番目の引数にアクセスしたければarguments[1]とするといいでしょう。
ちなみに実行している関数自体を参照したい時は、arguments.calleeです。 同じ関数内でremoveListenerとかやりたい時に便利です。匿名関数使ってaddListenerした時とか。
いや、そんなことすんなって話ですが!
var hoge:Function = function () {
trace("this:" + this + ", arguments[1]" + arguments[1]); //this:[object Object], arguments[1]7650
}
var a:Object = new Object();
hoge.apply(a, [108, 7650, 65535]);
多用すると叱られそうですが、そういうことも出来るということで(・∀・)
カテゴリー: FLASH, FLASH覚え書き(AS3) | コメントはまだありません »
2011年12月27日
変数fooの中身が空(未定義)の場合、代わりに別の値を代入する
といった処理を行う場合、今まで
var foo:Number; //何も代入しない
if (!foo){
foo = 65535;
}
trace(foo); //65535
とかって書いてたんですが、”||”を利用することでもっとラクできるんですね。
var foo:Number; //何も代入しない
foo = foo || 65535;
trace(foo); //65535
知らない事ばっかりだなあ(´д`)
カテゴリー: FLASH, FLASH覚え書き(AS3) | コメントはまだありません »
2011年12月26日
「ある関数が存在すれば実行」なんて処理をよく僕は書きたがります(そういう設計がすでによろしくないのかもしれないですが!)その時、
//objオブジェクトに関数hogeがあれば実行
var obj:Object = new Object();
if(obj.hoge!=null){
obj.hoge();
}
なんて書き方をすると、hogeがなかった場合に存在しないものは参照できねーよ!とコンパイラから叱られます。エラーになるわけですね。
上のコードだとプログラムの実行が途中で止まってしまうので、この場合はエラー処理ってやつを書かないと行けないみたいです。正直try catchはなんのために存在するのか分かっていませんでした。
知らない事ばっかりだなあ(´д`)
//objオブジェクトに関数hogeがあれば実行
var obj:Object = new Object();
obj.hoge = function () {
trace("あったー")
}
var methodExist:Boolean;
try
{
methodExist =(obj.hoge != null);
} catch (e:Error) {
methodExist = false;
} finally {
}
if (methodExist) {
//ここに存在した場合の処理
obj.hoge();
}else{
trace("なーい");
}
カテゴリー: FLASH, FLASH覚え書き(AS3) | コメントはまだありません »
2011年12月26日
ある値nの小数点以下を切り捨てる時、僕は今まで、
var n:Number = 3.14;
trace(Math.floor(n)); //3
としていたのですが、もっと楽な方法がありました。
上のコードは以下のように置き換えられます。
var n:Number = 3.14;
trace(n|0); //3
“|”はビットごとの和(OR)を取り、整数で返してくれる演算子で、n|0すると、各ビットに0を足すので値には何も変化を加えず、「整数で返してくれる」という部分だけを利用できます。べんりー。
カテゴリー: FLASH覚え書き(AS3) | コメントはまだありません »
2011年12月26日
恥ずかしながら半年くらい前までクロージャというもの知らずに生きてきておりまして、「AS2と違ってAS3は作ったボタンの中に勝手に変数作れないから困るよね!(゚Д゚)」とか文句言いながらコーディングしておりました。
具体的にはループで生成したボタンインスタンスに固有のidを渡したいと思った時なんかに、外からidという変数を作って突っ込めないのでわざわざMovieClipクラスを継承して、public属性の変数idを定義したクラスを作らないといけないじゃないか面倒くさいといったことなんですけど、関数で囲っちゃえば関数を定義した瞬間の内容を保持してくれるんすね。いや知らない事ばっかりだなあ(´д`)
//ループで5つのボタンをつくります。
for (var i:Number = 0; i<5; i++) {
var tgt:MovieClip = new MovieClip();
(function (target:MovieClip) {
var target:MovieClip = tgt;
var id:Number = i;
tgt.addEventListener(MouseEvent.CLICK, function (e:MouseEvent) {
trace("idは" + id + "だよ!");
});
})();
this.addChild(tgt);
tgt.x = i * tgt.width;
tgt.y = stage.stageHeight / 2
}
上のコードの
ですが、無名関数を定義して即実行するコードです。
最初の無名関数を()で囲わないとエラーになります。そういうものらしいです。
カテゴリー: AS2では出来てたのに, FLASH覚え書き(AS3) | コメントはまだありません »
2010年7月20日
FlashCS5が発売されてオートフォーマットに危険なバグも少なくなり、ようやくメインのオーサリング環境をFlash8からFlashCS5に移せそうな気がしてきました。重いのだけはどうにもなりませんが!
メインに据えたからにはAS2.0案件もCS5でオーサリングしようと思ったところ、8とCS5でべつの挙動をする設定がある箇所を見つけたのでメモしておきます。
それはサウンドのイベント設定です。
この投稿の続きを読む »
カテゴリー: FLASH, FLASH覚え書き(AIR), FLASH覚え書き(AS1-2), FLASH覚え書き(AS3) | コメントはまだありません »
2010年7月16日
PCのマザーボードが飛んで使用不能になったが仕事はあるということで、急遽予備機に作業環境を構築しました。
急ぎ足でインストーラー複数同時進行とかやらかして環境を構築したせいか「フォルダの表示設定をいくら保存してもアイコン表示・自動整列なしに固定される」という不具合にあい、地味ながら結構イライラさせられていたところ、調べてみると対処法がありました。
要はフォルダ設定を記録しているレジストリの値が破損しているようです。以下対処法。
この投稿の続きを読む »
カテゴリー: PC関連, Windows | コメントはまだありません »
2010年7月13日
ええ、作業PCのマザーボードが突然お亡くなりになりまして、急遽予備機をセットアップしてるんですがね、Bluetoothアダプタのドライバの最新版を落としてきて使ったら
SCMS-T方式で著作権保護されてないデバイスの接続はできません
といったエラーが表示されおってですね、ペアリングはできるが接続はできないという状態になったのですよ。SCMS-Tってなんだよと思って調べてみると、
SCMS
http://ja.wikipedia.org/wiki/SCMS
SCMS(Serial Copy Management System、シリアルコピーマネジメントシステム)は、民生用のDATやMini Disc、DCC、CDレコーダーなどのデジタル録音機器に付加されているコピー防止技術。
携帯の着うたなんかの普及で、最近はこれに対応しない機器は接続させてもらえなくなっているようです。なんだよそれ…
この投稿の続きを読む »
カテゴリー: PC関連 | コメントはまだありません »
2010年7月6日
とりあえず登録したプレイリストから動画IDが取得できて、BEMLで作ったプレイヤーで再生ができれば他はなんとかなるんじゃないの?ということで前回までまとめてみました。
実際に最低限のBEML(VideoDisplayのみ)+PlayerAPIだけでなんとかしようとするとドキュメントに書かれていることの1割も覚えればあとは使い慣れたActionScriptの好きなフレームワークなりを使って作ることが出来ると思います。
あ、最後にプレイヤーの操作やイベントについてざっくりと書いておきます。
この投稿の続きを読む »
カテゴリー: Brightcove, FLASH覚え書き(AS3) | コメントはまだありません »
2010年7月6日
さて、次は登録済みのプレイリストを取得します。
テストのためのプレイリストを作ってない場合は先にMediaモジュールにてプレイリストを作成し、プレイリストIDをメモしておいてくださいね。以下、プレイリストIDは準備出来ているものとして進んでいきます。
この投稿の続きを読む »
カテゴリー: Brightcove, FLASH覚え書き(AS3) | コメントはまだありません »