2011年1月16日日曜日

外部音声ファイルサイズ .length の盲点

ちょっとした事から、簡易mp3プレーヤーをflashで作る事になり。。。

仕様的には2つの聴き比べように2つのプレイボタンとストップボタンとシークバー。
なんて事はないよく見るプレーヤーですが。。。

シークバー作るのって意外とめんどくさい。。。

再生位置の表示に欠かせない公式的なものが

handle_mc.x = SoundChannel.position / Sound.length * bar_mc.width;

クセ者は.length

ライブラリーに読み込んで、リンゲージの設定をした音源なら問題ないが、外部からの読み込み音源だと.loadで読み込んで、

var sd:Sound;
var sc:SoundChannel
var size:int
var range:int = bar_mc.width;
addEventLestener(Event.COMPLETE,load_comp);
function load_comp(Event):void{
size.length;
}

等してlength値を取得する必要があるみたい。。。

ちなみにfunctionで取得しないと値は0なので、シークバーのhandle_mcは動かない。

なので公式にあてはめると

handle_mc.x = sc.position / size * range;

って感じ。。。

気付けば当たり前の事だけど、早く言ってよ。。。

2011年1月12日水曜日

内税(消費税)の計算方法

なんでいきなり内税の話・・・。

いやいや結構重要ですよ。

折角覚えたからメモ。

公式
税込み価格 × (5/105) = 内税額

だそうです。

なぜ105とか出て来るの??

みたいな話ですよねぇ。

なんでも5/105はわかりやすく言うと、105個分の5個という事なので、

税込み価格を105個に割ったものを×5すればでるそうで。。。

ってことは

1050(税込み価格) ÷ 105 = 10
10 × 5 = 50(内税)
1050 - 50 = 1000(税抜価格)

なるほど。

わかってみればなんて事はないですな。

ちなみに
10000 ÷ 105 × 5 = 476.190476......
10000 -  476.190476...... = 9523.80952.....

なるほど。

できることなら避けて通りたいですな。

2011年1月6日木曜日

動画変換、音声抽出のメモ

個人的に色々な音声サンプルで実験等を行いたい時に、必ず衝突するのがDVDからのリッピング問題とリッピングデータからの音声抽出作業。

ホント映像関係は苦労するなぁ。。。

通常簡単にできたらダメなものだもんね。

って言うかできたらダメなものだもんね。

簡単に流れをメモ。

いっつもどうやったか忘れてしまうので。。。

ちなみに環境はmac OSX10.5 です。

1:まずは自分のライブ映像等をDVDデッキで見れるように作ったDVDを用意。
2:mactheripper等でvideo_tsフォルダを抽出。
3:AnyVideoConverterってやつにvideo_tsフォルダ内のvobファイルをドラック&ドロップしてaviファイルに変換。
4:logicにaviを取り込み、音声抽出。

ざっとこんな流れ。

logicがmovとaviしかサポートしないので、こんな面倒な流れに。。。

ちょっと前まで活躍していた、handbrakeはどうやらaviのサポートを廃止したみたい。

2011年1月4日火曜日

Flashのリンク設定

いっっっつも忘れてしまうので、いい加減メモ。

-----------------------------------
btn_link.buttonMode = true; //いつもボタンをmcで作るのでボタンモード設定

btn_link.addEventListener(MouseEvent.CLICK, click_btn_link);


function click_btn_link(evt:MouseEvent):void {
     navigateToURL(new URLRequest("URL名"));
}
-----------------------------------

これでバッチリ。

htmlで数秒後に他のURLにジャンプさせる方法

どうやら2つやり方があるらしい。


1.htmlの<meta>タグによるやり方
<html>
<head>
<meta http-equiv="refresh" content="秒数; ジャンプさせるURL">
<title></title>
</head>
<body>
</body>
</html>


といたってシンプル。


2.javascriptによるやり方
<html>
<head>
<title></title>


<script language="JavaScript">
<!--
mnt = 秒数;
url = "ジャンプさせるURL";
function jumpPage() {
  location.href = url;
}
setTimeout("jumpPage()",mnt*1000)
-->
</script>


</head>
<body>
</body>
</html>



とちょっと複雑。


って事を踏まえて<meta>タグの方でやってみたら、macのsafariでは問題なくできるのにwindowsのIEではxpでも7でもダメ。。。


javascriptの方は両ブラウザとも問題なくジャンプできました。


なるほど。



簡単なのにはそれなりにワケがあるのね。

FlashにおけるMouse命令のメモ

新年早々のブログが何とも地味。。。

まぁ技術者なんてこんなもんですよ。

って事でいつも忘れてしまうMouse命令のメモ。

メモってもいっつもどっかに行っちゃうのでここなら安全でしょ。

---------------------------------------

click
CLICK : String = "click"
ユーザーがポインティングデバイスの主ボタンを、同じInteractiveObjectの上で押して放したときに配信されます。

doubleClick
DOUBLE_CLICK : String = "doubleClick"
ユーザーがポインティングデバイスの主ボタンを、同じInteractiveObjectの上で素早く続けて2回押して放したときに配信されます。そのオブジェクトのdoubleClickEnabledプロパティは、trueに設定されている必要があります。

mouseDown
MOUSE_DOWN : String = "mouseDown"
ユーザーがポインティングデバイスの主ボタンを、Flash Playerウィンドウ内のInteractiveObjectインスタンスの上で押したときに配信されます。

mouseMove
MOUSE_MOVE : String = "mouseMove"
ユーザーがポインティングデバイスを、InteractiveObjectの上で動かしているときに配信されます。

mouseOut
MOUSE_OUT : String = "mouseOut"
ユーザーがポインティングデバイスを、InteractiveObjectインスタンスの上から外に動かしたときに配信されます。

mouseOver
MOUSE_OVER : String = "mouseOver"
 ユーザーがポインティングデバイスを、Flash Playerウィンドウ内のInteractiveObjectインスタンスの上に動かしたときに配信されます。

mouseUp
MOUSE_UP : String = "mouseUp"
ユーザーがポインティングデバイスの主ボタンを、Flash Playerウィンドウ内のInteractiveObjectインスタンスの上で放したときに配信されます。

mouseWheel
MOUSE_WHEEL : String = "mouseWheel"
ユーザーがポインティングデバイスのマウスホイールを、Flash Playerウィンドウ内のInteractiveObjectインスタンスの上で回したときに配信されます。

rollOut
ROLL_OUT : String = "rollOut"
ユーザーがポインティングデバイスを、InteractiveObjectインスタンスの上から外に動かしたときに配信されます。

rollOver
ROLL_OVER : String = "rollOver"
ユーザーがポインティングデバイスを、InteractiveObjectインスタンスの上に動かしたときに配信されます。
---------------------------------------

どこに掲載されていたのかすら忘れちゃったけど。。。

たぶんadobeのリファレンスかな??

後は

ボタン名.addEventListener(MouseEvent.やりたいMouse命令, Function名);
function Function名(evt:MouseEvent):void { やりたい処理 }

で動くようになるはず。

HTML5.0の出現によって今後のFlashの居場所がなかなか不透明になって来ましたが、プログラム言語を1つ覚えたと思えば、なんだかのめり込んで良かった気がします。