君は今まで作ったカレンダーの数を覚えているのかい?
今年もお世話になりました。beshinです。
仕事柄Webサイトの端っこのほうにあるカレンダーとかのデザインをしたり、何月とかっていうディレクトリ名をつけたりすることがあるのですが、いかんせん英語の表記に自身が無く、その度に「2月 英語」とか「木曜日 英語 」いう感じでグーグル先生に質問しています。覚えてしまえばいいことなんですが、三十路手前で退化が始まっている頭ではなかなか・・・
というわけで、覚える気もないのでここらへんにメモっておきますね。
- 1月 : january【jan】
- 2月 : february【feb】
- 3月 : march【mar】
- 4月 : april【apr】
- 5月 : may【may】
- 6月 : june【jun】
- 7月 : july【jul】
- 8月 : august【aug】
- 9月 : september【sep】
- 10月 : october【oct】
- 11月 : november【nov】
- 12月 : december【dec】
曜日も
- 月曜 : monday【mon】
- 火曜 : tuesday【tue】
- 水曜 : wednesday【wed】
- 木曜 : thursday【thu】
- 金曜 : friday【fri】
- 土曜 : saturday【sat】
- 日曜 : sunday【sun】
火曜日とか木曜日とかなんなん?
怖いものなしですね。それではごきげんよう。
ActionScriptエディタって、Flashについてるやつから始まって、秀丸とか、Sepyとか経て、ここ何年かFlashDevelopに落ち着いてたけど、CS5にFlashBuilder4がついてきたので、乗り換えてみることにしました。
その設定とか、思ったこととか、いろいろ覚書きです。
■フォントの設定
僕はSepyの名残で「Courier」が好きなので変更。Win7のフォントの管理で表示にしておかないと指定できなかった。
「設定」→「一般」→「外観」→「色とフォント」→「基本」→「テキスト・フォント」
■カラーリングの設定
「設定」→「一般」→「エディター」→「テキスト・エディター」
「設定」→「Flash Builder」→「エディター」→「構文の色指定」
■よく使うショートカット(一部SourceMateがいる)
コードヒントとかクラスのimport
Ctrl+Space
)選択行をコメント
ctrl+/
行削除
Ctrl+D
行の複写
Ctrl+Alt+↑
ローカル変数をメンバー変数に変更
Alt+Shift+V
変数名の変更(関連箇所も一括で変更)
ctrl+Alt+R
getter、setterの設定
Alt+Shift+G
現在カーソルがいる行の次の行を改行
shift+Enter
参考と備忘録
http://cuaoar.jp/2010/04/adobe-flash-builder-4.html
http://clockmaker.jp/blog/2010/03/sourcemate-flashbuilder4/
http://utweb.jp/blog/archives/815
とりあえずはプラグインではSourceMateが必須だということがわかりました。円高のうちに買うしかないですね。
使ってみて思ったのは、エディタ機能だけならFDのほうが賢い気がする。でもそのほかの機能を含めると、FBのほうがよさげ。
あと、他の環境でも同じように作業したいので、設定ファイルとか、スニペッツとか、テンプレートのエクスポートの仕方を知りたいです。誰か!
円高ですね。
最近輸入物の果物とかの恩恵を受けているbeshinです。
と、いうわけでTweenMaxやTweenLiteの有償版、ClubGreenshockを購入してみました。
無償版と比べていくつかプラグインの機能追加されているのですが、とりあえず、よく使いそうなdynamicPropsとtransformAroundCenterを紹介してみようと思います。
まずは、dynamicProps。
Tween系のエンジンって、どこどこまで何秒かけてっていうのが基本なので、最終のどこどこの値が動的に変化するアニメーションには使えなかったりしますね。(あんまり無いけど)
わかりやすい例でいうと、画面のサイズが変わったときとか、マウスを追いかけるとか、例外的な処理を書いて、アニメーションをスキップさせたりして対応していたのですが、このdynamicPropsを使うと、うまいことやってくれるみたいです。
TweenLite.to(mc, 1, {
dynamicProps: {
x:this.mouseX
,y:this.mouseY
}
});
private function _getX():Number {
return stage.stageWidth / 2;
}
private function _getY():Number {
return stage.stageHeight / 2;
}
注意しないといけないのは、ゴールとなる値をFunction型で指定しないといけないことくらいです。ろくにドキュメントを読まずに、適当にやっていた僕は、しばらく悩みました。ドキュメントは大事です。しっかり読みましょう。
次に、transformAroundCenterです。
通常、Flashって基準点があって、それを基準に移動とか、回転とかをするんですが、transformAroundCenter使うと、インスタンスの中心を基準にいろいろな変形処理をやってくれます。
TweenLite.to(mc, 1, {
transformAroundCenter: { x:stage.stageWidth / 2, y:stage.stageHeight / 2 },
ease:Quad.easeOut
});
さらに、transformAroundPointというのがあって、任意の点を基準に動かしたりということも出来ます。
ただ、このtransformAroundCenterですが、使えるプロパティが限られてます。TransformAroundPointVarsのプロパティがそれにあたります。
scaleX:Number、scaleY:Number、rotation:Number、width:Number、height:Number、shortRotation:Object 、x:Number、y:Number
実は、この二つを組み合わせることができると便利そうだなと思っていたのですが、そんな感じの事情でうまくいきませんでした。
後から知ったんですが、flパッケージにある、MatrixTransformerクラスを使っても同じようなことが出来るみたいですね。
任意の点で回転させるサンプル。
var mat:Matrix = mc.transform.matrix;
MatrixTransformer.rotateAroundExternalPoint(mat, 任意のX座標, 任意のY座標, 回転);
mc.transform.matrix = mat;
というか、やり方としてはこれで求めたmatrixをdynamicPropsでTweenさせればいいんじゃね?という話になりますね。
ライブラリ依存しまくりな今日この頃ですが、ちょっとした時間も惜しいときとかにいかがでしょうか?
円高の今がチャンスですよ。
早寝早起きbeshinです。こんにちわ。
長時間作業していると、マウス操作が邪魔くさくなるときがありませんか?
特にコードとか書いてるときに、何か別のアプリを起動するときとか、いちいちマウス握って、カーソル合わせて、ダブルクリック・・・って、わー!だー!とにかく面倒です。
そんなとき、こんなtweetを見つけました。
キーボード>マウス>タッチパネル、どん
どん脳とコンピュータの間が広くなっている
気がする。せっかく脳とコンピューターを
キーボードで直結したのに、わざわざ身体
を伴うタッチはまどろっこしい。
なるほどたしかに。あれってコンピューターとの距離感だったんですね。
とはいうもの、すべてCUIてな感じで操作というのは、ちょいとハードルが高い気がします。
というわけで、少しでもマウスに触れない生活する方法を考えてみました。
まず、使っている人は、すでに使っていると思うのですが、Windowsには「ファイル名を指定して実行」というのがあります。
ショートカットでwin+rを押すと起動します。
たとえば、コマンドプロンプトを起動したければ、名前のところに「cmd」と打つと起動します。メモ帳だと、「notepad」と打つと起動します。
他にも、適当に普段使っているアプリ名を入れると、結構起動します。ファイルのパス名とかをいれると、エクスプローラーが立ち上がって、そのフォルダを表示してくれたりもします。
アプリ名を入れても起動しないものは、環境変数のPathとかを設定します。
いちいちマウスもたなくていいので、少しは楽ですね。
また、ブラウザとかだと、vim風のキーバインド操作が出来る拡張機能とかもあります。
firefoxだと、Vimperatorとか有名ですね。
僕は普段choromeを使っているのですが、Vimiumっていうのがシンプルでいい感じです。
ちなみに、MacだとQuickSilverっていうすばらしいランチャーとかもあります。
いろいろ組み合わせて使うと、ネットやメールくらいならほとんどマウス操作なしで生活できるようになりました。
次はエディタをvimに乗り換えてみようかなあと思ってます。
http://ja.wikipedia.org/wiki/Vim
まだまだ残暑が厳しい季節です。マウスみたいな重たいものはささっと窓から放り投げて、涼しく過ごせばいいんじゃないでしょうか?
それではごきげんよう。
こんにちわ。娘がついにつかまり立ちしまして目が離せないbeshinです。
RSSとか扱うときに、日付がW3CDTF形式だとFlashでそのまま使うことができませんよね。
W3CDTF形式というのは、要するにこんな感じで表記されている日付です。
2005-04-23T17:20:00+09:00
new Date(“2005-04-23T17:20:00+09:00″);
とかで、変換してくれたらいいのですが、そうもうまくいかないみたいです・・・
いつもは笑うくらい適当に力技で文字列操作とかしてDate型に変換して扱っていたのですが、as3corelibのDateUtilクラスにparseW3CDTFというstaticなメソッドが用意されてて、簡単にDate型にパースできることにさっき気づきました。世の中便利ですね。
使い方は
var date:Date = DateUtil.parseW3CDTF(“2005-04-23T17:20:00+09:00″);
trace(date)//Sat Apr 23 17:20:00 GMT+0900 2005
簡単でしたね。
今週ものこり少なくなりましたが、一生懸命がんばりましょう。
でわでわ。ごきげんよう。
こんにちわ。beshinです。
うちの娘もスクスク育ってます。僕も成長しないといけないので、
Flashばかりではなく、たまには違うことやってみます。
ついこの前のyoutubeのリニューアルに伴い動画へのアクセス方法の仕様が変わりました。
前回のエントリーでインプットでyoutube使って、別の形でアウトプットさせようと企んでいた僕にとっては一大事です。
前はここのCGIをまんま使わせてもらってましたが、仕様が変わって以来うまく動いてないようです…
http://nondelion.com/archives/2009/04/08/2255
他の動画ダウンロード系のウェブサービスも見ても、軒並み停止してるぽいです。
仕方がないので、自分でやってみることにしました。
結論から言うと、今回はうまくいきませんでした。
でも、とりあえずプロセスだけ共有します。(まああんまり役に立たないですが…)
まずはじめに、動画のファイルを調べました。
昔はIEとかのテンポラリアイテムをみてやってましたが、firebug接続でダウンロードの様子を確認できるので楽チンです。
一覧からそれっぽいファイルを探します。
次に、動画へのAPIを確認しました。
http://www.youtube.com/get_video_info自体はのこっているっぽいので、動画のIDを渡してみました。
http://www.youtube.com/get_video_info?video_id=eWp7R_uoWN4
get_video_infoというファイルがダウンロードできるので中身をみます。
いろいろ解析してみると、さっきのダウンロードファイルぽいURLがありますね。
というわけで超適当にPHP買いてURLを表示させてみます。
<?php
require_once “HTTP/Request.php”;
$key = “fmt_stream_map”;
$id = $_GET["id"];
$req =& new HTTP_Request(“http://www.youtube.com/get_video_info?video_id=”.$id);
if (!PEAR::isError($req->sendRequest())) {
$elements_body = split(‘&’,$req->getResponseBody());
}
$querys = array();
foreach( $elements_body as $element ){
$arr = split(‘=’,$element);
$querys[$arr[0]] = $arr[1];
print $querys[$arr[0]].”<br>\n”;
}
$arr = split(‘\||,’,urldecode($querys[$key]));
print ‘<a href=’.$arr[1].’>’.$arr[1].’</a>’;
?>
localhostからアクセスすると、普通にダウンロードできました。
お!とか言って小躍りとかしましたね。
調子にのって、サーバーで確認しました。
失敗です。まあ当たり前っちゃ当たり前。
とりあえず、現状を把握するためにいろいろ試してみました。
firebugのURLをfirefoxで見るとセーフ。
他のブラウザで見るとアウト。(UAが違うから?)
localhostで表示したURLはどのブラウザでみてもセーフ。(リファラーが同じだから?)
サーバー経由でアクセスした場合はどれでもアウト。(リファラーが違うから?)
さてさて、とりあえずリファラーとUAあたりかな?このへんをどうにかできるテクがあればいけそうだけど、今回は断念・・・。
なんかわかったら続き書きます。
iPhoneっていうのが便利らしいですね。こんにちわ。こんにちわ。auユーザーのbeshinです。
こんにちわ。
というわけで、空気読まずに別の話をします。
auが提供しているサービスに、最近TVCMとかでよく目にするガンガンメールというものがあります。ピン子がビックリして、どうこういってるやつですね。知らない人のために簡単に説明すると、メールで使用するパケット代が無料になるサービスで、写真や動画の添付もその範囲になります。
http://www.au.kddi.com/pr/price/index.html?did=au_topc_2002
子供が生まれて以来、両親や友達などに写真や映像をメールに添付して送る機会が増えたので嫁共々加入してみました。
さてさて、最近のWebサービスには、メール経由で利用できるものがあるのをご存知でしょうか。
うっすら知ってはいたのですが、この際少し調べて、ガンガン使ってみようかと思いました。
■youtube
まず、youtube。泣く子も黙る動画共有サイトです。
ログイン→動画をアップロードする→携帯電話からアップロードと進んでいくと、専用のメールアドレスが表示されます。
あとは携帯から動画を添付して、そのアドレスにメールを送信すると、My動画に添付した動画がアップされているはずです。
3gp形式をyoutubeがflvに変換してくれます。

■flickr
こちらも泣く子も黙る、写真共有サービスですね。
ログイン→アカウント設定画面→Emailタブ→Your Flickr upload emailに専用のメールアドレスが表示されます。
あとは添付してメールするだけで、photostreamに表示されます。
実際に使ってみてわかったんですが、Flickrって動画もいけるんですね。こちらはmp4形式に変換されてました。

■twitter
泣く子も黙るつぶやきサービスですね。
先日?(大分前ですが)、携帯版もオープンしましたね。
http://twtr.jp
だんだん同じことを書いているのではしょりますが、詳しくは以下のページを
http://blog.twitter.jp/2010/01/blog-post_26.html
こちらも専用のアドレスを取得できるので、そこにメールを送ると、自分のタイムラインにつぶやくことができます。
Webサービスって、ネットに接続して、ログインして、あれこれして、と、なにかとめんどうくさい印象があって、なんだか敷居が高いですが、携帯のメールだけでできる。となると少し手軽な気がします。
メールさえ出来れば参加できるので、アウトプットの方法さえ工夫すれば、いよいようちのオトンやオカンが、サイトを持つ時代がやってきたのかもしれませんね。
そこらへんは、そのうちに考えてみたいと思います。
ちなみに、文中に泣く子も黙る的なことを何度も書いていますが、泣いているうちの娘にWebサービスを見せたところで泣きや気配はありませんでした。
サイコロ当たったわけじゃないけどbeshinです。
Flashでセンタリングさせるときとか、いろいろ2で割ったりとかしてたんですが
ビットシフトでできることをさっき知りました。
なんか圧倒的におしゃれなのでこっちでやろうと思います。
private function _onStageResize(e:Event = null):void {
x = stage.stageWidth / 2 – width / 2;
y = stage.stageHeight / 2 - width / 2;
}
↓↓↓↓↓
private function _onStageResize(e:Event = null):void {
x = (stage.stageWidth >> 1)-(width >> 1);
y = (stage.stageHeight >> 1)-(width >> 1);
}
ちなみにビットシフトについてはあんまり意味がわかってなくて
こうやればこう動くっていうのだけ知ってる感じ。
きちんと勉強しないとだめですね。
あと、Casa libのDistributionがSprite継承してることをさっき知りました。
wrapper系はこれ拡張して使うかんじなんですかね?
class hogehoge extends Distribution的な
http://as3.casalib.org/docs/org_casalib_layout_Distribution.html
でわでわ。
こんにちわ。あいかわらず確変継続中でサイコロ当たりまくりのbeshinです。
いろいろネタは溜まっているので、ちょっとずつ投下していきます。
僕みたいなへっぽこASerがコード書くと、簡単な処理でもなぜかif文だらけになったり、動くけどすごく複雑になっちゃったり、そういうことって多々あります。
でも案外便利な関数が用意されていて、それらをちょっと応用することで、すごく簡潔に書けることってたくさんあるんですね。
毎回過去のコードを参照してコピペするのが面倒くさくなったので備忘録としてメモっておきます。
■一定の数までカウントがアップすると0に戻る(下の例だと5まで行くと0にもどる)
this._count = (this._count + 1) % 6;
■範囲の限定(0~100まで)
var max:Number = 100;
var min:Number = 0;
this.x = Math.max(min,Math.min(max,this.x));
■配列の値がすべて同じであるかどうか(数値限定)
最大値と最小値を出して比較
最大値
arr.sort(Array.NUMERIC)[arr.length-1];
最小値
arr.sort(Array.NUMERIC)[0];
■配列の複製
var arr:Array = [10, 8, 9, 5, 2, 3, 4, 6, 7];
var arr2:Array = arr.slice();
sliceは配列の一部を切り取って、別の配列として返す。
■テキストフィールドのアルファ
Flashフォントの埋め込みをしないと、テキストにアルファがかからない。と思っていました。
blendMode = BlendMode.LAYER;
TextFieldの親コンテナにBlendMode.LAYERを指定すると、普通にいける。
via:http://wonderfl.net/code/7beb8650734b794c73fde3cc45f96a93acc05fb1
■PV3Dのオブジェクトのピッタリ狙った位置とサイズに2Dのムービークリップを重ねる技術
Camera3D の focus * zoom がちょうどスクリーン座標と 3D 座標が一致する距離。
this._camera.z = this._camera.focus * this._camera.zoom;
■Camera3Dの簡単設定
対象のtoransformコピーして、rotationしてmovieBackfoword!
var target:DisplayObject3D;
var distance:Number = 100;
this._camera.transform.copy(target.transform);
this._camera.moveBackward(distance);
そういえば娘が生まれました。百絵っていいます
主に笑ったり泣いたりウンチしたり寝たりしています。
package{
public class Momoe extends Beshin{
public function Momoe(){}
public function 泣く(){trace(“あーーーーー”)}
public function 笑う(){trace(“あうあうあう”)}
private function ウンチ(){trace(“ぶりぶりぶり”)}
private function 寝る(){trace(“ZZZ・・・”)}
}
}