<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>1ka2ka.com</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/" />
   <link rel="self" type="application/atom+xml" href="http://1ka2ka.com/atom.xml" />
   <id>tag:1ka2ka.com,2010://14</id>
   <updated>2010-07-29T07:53:45Z</updated>
   <subtitle>Flash / アクションスクリプト / Flash Lite の Tips やサンプルソースなどを公開しているブログ。その他、Web に関する時事やネタなども紹介。</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>[HTML5 canvas] ドラッグ処理（iPad &amp; iPhone 対応）</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201007/29_164852.html" />
   <id>tag:1ka2ka.com,2010://14.2091</id>
   
   <published>2010-07-29T07:48:52Z</published>
   <updated>2010-07-29T07:53:45Z</updated>
   
   <summary>canvas でのドラッグ処理サンプル。 PCではマウスイベント、iPad / iPhone ではタッチイベントで処理を振り分けているので、どちらでも同じように動作ができるようにしている。 ⇒こちらか...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1177" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1193" label="iPad" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1195" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1219" label="ドラッグ" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[canvas でのドラッグ処理サンプル。

PCではマウスイベント、iPad / iPhone ではタッチイベントで処理を振り分けているので、どちらでも同じように動作ができるようにしている。

<a href="/uploadfile/100616/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100729/drag.html','animeCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒こちらからもサンプルを見れます（別ウインドウ）</a>

<script type="text/javascript" src="http://jsdo.it/blogparts/gQ5h/js"></script>

しかし、canvas であこれやこれやと動作させることは可能っちゃ可能なんだけども、やっぱり限度もあるような気がする。普通に html + javascript で動作させる方があれこれメリットが多いような気も…。うーん、そっちもちょっと基本くらいは抑えておきたいかなー。]]>
      
   </content>
</entry>
<entry>
   <title>[HTML5 canvas] 簡単な 3D アニメーション</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/16_092531.html" />
   <id>tag:1ka2ka.com,2010://14.2077</id>
   
   <published>2010-06-16T00:25:31Z</published>
   <updated>2010-06-16T00:25:57Z</updated>
   
   <summary>HTML5 canvas 上でちょっと簡単に 3D アニメーションを試してみた。 まぁ、3D といっても、別に何かテクニックがあるわけでもなく、ひたすら、XYZ座標の変換処理が走っているだけなんだよね...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="163" label="3D" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1197" label="アニメション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1164" label="変換" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1180" label="座標" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1198" label="残像" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[HTML5 canvas 上でちょっと簡単に 3D アニメーションを試してみた。

まぁ、3D といっても、別に何かテクニックがあるわけでもなく、ひたすら、XYZ座標の変換処理が走っているだけなんだよね（汗）

<a href="/uploadfile/100616/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100616/animeCanvas.html','animeCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100616/preview.png"></a>

<a href="/uploadfile/100616/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100616/animeCanvas.html','animeCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

まぁ、それでも、HTML ページ上で、Flash を使用せずに 3D でオブジェクトが動くのは新鮮。

クリックする度にオブジェクトの形状が変化する。

最初はこの形状の切り替えもアニメーションさせようと思ったのだけども、やっぱり少し面倒なのと、ちょっとそこまで時間が無かったので割愛。

そうそう、オマケに残像処理も付けてみた。]]>
      
   </content>
</entry>
<entry>
   <title>[HTML5 canvas] お絵かきツールを iPad に対応させてみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/15_005933.html" />
   <id>tag:1ka2ka.com,2010://14.2076</id>
   
   <published>2010-06-14T15:59:33Z</published>
   <updated>2010-06-14T15:57:43Z</updated>
   
   <summary>前回に作ったHTML5 canvas のお絵かきツールのサンプルを iPad で見てみたところ、全然、絵が描けないことに気付く。まぁ、そりゃそうか。何も対応処理させていないものねー。 それで、今度は ...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1193" label="iPad" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1195" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="522" label="イベント" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1196" label="タッチ" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[前回に作った<a href="/archives/201006/11_010911.html">HTML5 canvas のお絵かきツールのサンプル</a>を iPad で見てみたところ、全然、絵が描けないことに気付く。まぁ、そりゃそうか。何も対応処理させていないものねー。

それで、今度は iPad でもちゃんと絵が描けるようにイベントなどを調整。

<a href="/uploadfile/100615/sampleCanvas.html" onclick="javascript:window.open('/uploadfile/100615/sampleCanvas.html','sampleCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100615/preview.png"></a>

<a href="/uploadfile/100615/sampleCanvas.html" onclick="javascript:window.open('/uploadfile/100615/sampleCanvas.html','sampleCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

※iPad で動作確認。iPhone でも同じように動作するはず（？）

iPad や iPhone にはそれぞれタッチ用のイベントが用意されているので、そのイベントを登録して処理を行う。

しかもタッチ数は5つまで取得できるとのこと。せっかく5つも使えるってことで、あれこれと試行錯誤して最高5本指で同時に線を描くことができるようにしてみた。

同時に複数の線が描ける感覚は PC では味わえない新しい感覚だ。

<dl>
<dt>参考情報</dt>
<dd><a class="ex" href="http://ke-tai.org/blog/2008/07/28/iphonemulti/">90秒で理解するiPhone JavaScript（マルチタッチ編） | ke-tai.org</a></dd>
<dd><a class="ex" href="http://symple.jp/93.html">iPhone向けSafari、HTML拡張属性を使いこなす | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報</a></dd>
</dl>]]>
      
   </content>
</entry>
<entry>
   <title>[HTML5 canvas] アニメーション処理の制御を試してみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/14_095956.html" />
   <id>tag:1ka2ka.com,2010://14.2074</id>
   
   <published>2010-06-14T00:59:56Z</published>
   <updated>2010-06-14T00:57:30Z</updated>
   
   <summary>オブジェクトのアニメーション制御にちょっと挑戦。 Flash では「Tweener」とかモーション系のライブラリがあるので、オブジェクトのアニメーション制御が非常に楽なんだけども、javascript...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="832" label="アニメーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="870" label="モーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="655" label="ライブラリ" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1188" label="処理" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1189" label="制御" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[オブジェクトのアニメーション制御にちょっと挑戦。

Flash では「Tweener」とかモーション系のライブラリがあるので、オブジェクトのアニメーション制御が非常に楽なんだけども、javascript の場合、そういう情報に疎かったりする…汗

とりあえず、以前に自分で作ってたことのある Flash ライブラリの処理を参考にして、アニメーションの制御をしてみた。

<a href="/uploadfile/100614/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100614/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100614/preview.png"></a>

<a href="/uploadfile/100614/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100614/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

上記サンプルでは、円が5つ縦に並んでおり、キャンバス上でクリックすると、そのクリックしたX座標に向かって円が動くという内容。それぞれの円で動く速さが異なり、上から「等速」「加速」「減速」「加速-減速」「減速-加速」というパターンとなっている。

またラジオボタンでアニメーションを行う時間を変更できるようにしている。

ただ、あまり複雑なアニメーションで制御できるわけではないので、コンテンツ内容によって処理をカスタマイズするのが手っ取り早い感じかな。

もう少し汎用性が高められると便利なんだろうけどもね…。自分であれこれ改良するにも限度がありそうな予感…。

なんで、もっと良い処理の仕方や、モーション管理系のライブラリがあると良いんだけどもねー。

いやー、思い切り、他力本願（;´д｀）ﾉ]]>
      
   </content>
</entry>
<entry>
   <title>[HTML5 canvas] マウス座標に追尾するオブジェクト処理</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/13_144911.html" />
   <id>tag:1ka2ka.com,2010://14.2073</id>
   
   <published>2010-06-13T05:49:11Z</published>
   <updated>2010-06-13T05:46:59Z</updated>
   
   <summary>前回の雪が降るアニメーションサンプルで、少しマウス座標に絡む処理を追加してみたのだが、Flash でも定番なマウスカーソルに追従するオブジェクト処理のサンプルを作ってみた。 ⇒サンプルを見る（別ウイン...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="832" label="アニメーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1187" label="オブジェクト" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1179" label="マウス" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1185" label="追尾" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1186" label="追従" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[前回の<a href="/archives/201006/12_002842.html">雪が降るアニメーションサンプル</a>で、少しマウス座標に絡む処理を追加してみたのだが、Flash でも定番なマウスカーソルに追従するオブジェクト処理のサンプルを作ってみた。

<a href="/uploadfile/100613/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100613/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100613/preview.png"></a>

<a href="/uploadfile/100613/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100613/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

ただ純粋に追尾するだけではなく、少し慣性の動きを加えてアニメーションさせてみた。この辺のパラメータは毎回ページを更新する度にランダムで設定しているので、何度か更新しつつサンプルを見てみると良いかも。]]>
      
   </content>
</entry>
<entry>
   <title>[HTML5 canvas] 複数オブジェクトのアニメーションとマウス制御</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/12_002842.html" />
   <id>tag:1ka2ka.com,2010://14.2072</id>
   
   <published>2010-06-11T15:28:42Z</published>
   <updated>2010-06-13T05:47:08Z</updated>
   
   <summary>本来は Flash がメインとなるブログのはずなんだが、ついつい HTML5 の canvas が小っちゃい Flash っぽく手軽に作れるので、あれこれと触ってみたくなってしまう。 それに acti...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="832" label="アニメーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1176" label="描画" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1184" label="複数" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="91" label="雪" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[本来は Flash がメインとなるブログのはずなんだが、ついつい HTML5 の canvas が小っちゃい Flash っぽく手軽に作れるので、あれこれと触ってみたくなってしまう。

それに actionscript も javascript も親戚みたいな感じだから、どちらで作っても、同じような書き方なで、どっちでもいいやー、みたいな。むしろ旬は html5 だろ、みたいな

んで、今回も同様に HTML5 の canvas でアニメーションさせるサンプル作り。

<a href="/uploadfile/100612/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100612/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100612/preview.png"></a>

<a href="/uploadfile/100612/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100612/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

よくある雪が降る雰囲気のアニメーション。

今まではひとつの形を動かす程度だったんだけども、雪、というからには、いくつか複数の白い円、そしてランダム要素のある動きが必要となってくる。

canvas の場合は、Flash みたいにシンボルなどがあるわけではないので、配列を使ってオブジェクトの属性などを計算処理させていくはず。そして、その配列をループ処理させて描画していく感じだよね。きっと。

ついでにオマケ機能として、雪にマウスカーソルを近づけると、マウス付近の雪オブジェクトが大きくなっていくという、特に意味無いインタラクティブ動作を実装してみた。

あと、ふとした印象で、実際にはどうかは良く分からない感覚的な印象なんだけども、いちいち描画をクリアにするより、上書きで描画していった方が処理が早いような気もした。
もちろん、何か数値とか計測したわけではないので、ただの気のせいかもしれないけどね（汗）

<dl>
<dt><a class="ex" href="http://9elements.com/io/projects/html5/canvas/">HTML5 Canvas and Audio Experiment</a></dt>
<dd><p><a href="http://9elements.com/io/projects/html5/canvas/"><img alt="" src="/uploadfile/100612/site.png" /></a></p>
<p>かなり心地よいモーションが堪能できる HTML5 Canvas のデモサイト。</p></dd>
</dl>

いちおう、こんな有名なデモサイトもあるんだけど、これだけ円の数が多くてもサクサクと動くんだよね。

基本は同じような仕組みなのか？それとも高速化とかちょっとしたテクニックがあるのか？

コードをパッと見た感じはサッパリなんだけども、時間があったらじっくりと解析してみたいなー。]]>
      
   </content>
</entry>
<entry>
   <title>HTML5 canvas を利用して画像変換が可能なお絵かきツールを作ってみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/11_010911.html" />
   <id>tag:1ka2ka.com,2010://14.2071</id>
   
   <published>2010-06-10T16:09:11Z</published>
   <updated>2010-06-10T16:05:55Z</updated>
   
   <summary>HTML5 の canvas であれこれとサンプルを作っていくうちに、簡単なお絵かきツールくらいだったらすぐに作れそうだと、早速サンプル作成してみたところ、これがまた意外にもあっさりと作ることができた...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1183" label="PNG" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1181" label="お絵かき" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="165" label="ツール" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1164" label="変換" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="823" label="画像" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[HTML5 の canvas であれこれとサンプルを作っていくうちに、簡単なお絵かきツールくらいだったらすぐに作れそうだと、早速サンプル作成してみたところ、これがまた意外にもあっさりと作ることができた。

さらには、描いたイラストをPNG画像にも変換ができるようにもしてみた。

<a href="/uploadfile/100611/sampleCanvas.html" onclick="javascript:window.open('/uploadfile/100611/sampleCanvas.html','mouseCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100611/preview.png"></a>

<a href="/uploadfile/100611/sampleCanvas.html" onclick="javascript:window.open('/uploadfile/100611/sampleCanvas.html','mouseCanvas','width=640,height=550,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

javascript のコードはすこーし長めになってしまったんで割愛。気になる人はサンプルページで HTML ソースを確認してもらえればと。

基本的にはマウスイベントでマウスが押している状態か押していない状態かをフラグで判別。マウスを押している時は、マウスが移動する度に、その座標に対して円の描画を行う。

あくまでも簡易なので、マウスをビシャァーっと動かすと、点がぽつらぽつらと描画されてしまうのは愛嬌だと思っていただければ幸い。この辺を補完処理して描画できると、よりお絵かきツールっぽいんだけどねー。そんな高度なことは今はちと厳しいっス。

あとは、おまけ程度にラジオボタンで線の太さを切り替えられるようにしてみた。

canvas に描画された画像に変換するのも、この<a class="ex" href="http://www.html5.jp/canvas/ref/HTMLCanvasElement/sample/toDataURL.html">toDataURL() メソッド</a>を使用すれば簡単に処理を行える。

何気なく Fireworks とかで画像ファイルを開いてみたら、ちゃんと透過情報も保持されていた！

<img alt="" src="/uploadfile/100611/img.png">

こりゃあ、便利だねー。

<dl>
<dt>参考情報</dt>
<dd><a class="ex" href="http://www.html5.jp/canvas/ref/HTMLCanvasElement/sample/toDataURL.html">toDataURL() メソッド（canvas を画像に変換） - Canvasリファレンス - HTML5.JP</a></dd>
</dl>]]>
      
   </content>
</entry>
<entry>
   <title>HTML5 canvas とマウス座標の制御</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/09_203630.html" />
   <id>tag:1ka2ka.com,2010://14.2070</id>
   
   <published>2010-06-09T11:36:30Z</published>
   <updated>2010-06-09T12:26:16Z</updated>
   
   <summary>今度は、HTML5 の canvas にマウス座標などを絡めたサンプルなんぞを作ってみた。 てゆーか、本来、今現在、こんなサンプルを作っている暇がない状況なんだけども、ちょっとした気晴らしで現実逃避だ...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1177" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="522" label="イベント" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1179" label="マウス" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1180" label="座標" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[今度は、HTML5 の canvas にマウス座標などを絡めたサンプルなんぞを作ってみた。

てゆーか、本来、今現在、こんなサンプルを作っている暇がない状況なんだけども、ちょっとした気晴らしで現実逃避だったりもするw

<a href="/uploadfile/100609/mouseCanvas.html" onclick="javascript:window.open('/uploadfile/100609/mouseCanvas.html','mouseCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100609/preview.png"></a>

<a href="/uploadfile/100609/mouseCanvas.html" onclick="javascript:window.open('/uploadfile/100609/mouseCanvas.html','mouseCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

とりあえずあんま余裕がなかったんで、座標取得やらマウスイベントの簡単なサンプル。

マウスを動かすとXY座標が表示。クリックでその場所に赤い円が描かれ、クリックを離すとで少し大きな青い円が描かれる。あとは canvas の領域からマウスが外れると黒色で描かれマウスアウトと表示される。

まぁ、このくらいシンプルな方が、後々にこの記事を見た時にちょうど良いサンプルとなるんでいいかー。

javascript のコードはこんな感じ。

<pre><code>
var cW = 600;	//キャンバス横サイズ
var cH = 300;	//キャンバス縦サイズ
var mouseX;
var mouseY;
window.onload = function() {
	draw();
};
function draw() {
	//キャンバスの初期処理
	var canvas = document.getElementById('testCanvas');
	if ( ! canvas || ! canvas.getContext ) return false;
	//2Dコンテキスト
	var ctx = canvas.getContext('2d');
	//イベント：マウス移動
	canvas.onmousemove = mouseMoveListner;
	function mouseMoveListner(e) {
		//表示クリア
		ctx.clearRect(0, 0, cW, cH);
		//座標調整
		adjustXY(e);
		//テキストの描画
		ctx.globalAlpha = 1;
		ctx.fillStyle = "#666666";
		ctx.fillText("X座標：" + mouseX, 5, 12);
		ctx.fillText("Y座標：" + mouseY, 5, 24);
	}
	//イベント：マウスダウン
	canvas.onmousedown = mouseDownListner;
	function mouseDownListner(e) {
		//表示クリア
		ctx.clearRect(0, 0, cW, cH);
		//座標調整
		adjustXY(e);
		//円を描く
		ctx.beginPath();
		ctx.fillStyle = "#CC0000";
		ctx.arc(mouseX, mouseY, 20, 0, Math.PI * 2, false);
		ctx.fill();
		//テキストの描画
		ctx.globalAlpha = 1;
		ctx.fillStyle = "#666666";
		ctx.fillText("X座標：" + mouseX, 5, 12);
		ctx.fillText("Y座標：" + mouseY, 5, 24);
		ctx.fillText("イベント：マウスダウン", 5, 36);
	}
	//イベント：マウスアップ
	canvas.onmouseup = mouseUpListner;
	function mouseUpListner(e) {
		//表示クリア
		ctx.clearRect(0, 0, cW, cH);
		//座標調整
		adjustXY(e);
		//円を描く
		ctx.beginPath();
		ctx.fillStyle = "#0000CC";
		ctx.arc(mouseX, mouseY, 40, 0, Math.PI * 2, false);
		ctx.fill();
		//テキストの描画
		ctx.globalAlpha = 1;
		ctx.fillStyle = "#666666";
		ctx.fillText("X座標：" + mouseX, 5, 12);
		ctx.fillText("Y座標：" + mouseY, 5, 24);
		ctx.fillText("イベント：マウスアップ", 5, 36);
	}
	//イベント：マウスアウト
	canvas.onmouseout = mouseOutListner;
	function mouseOutListner(e) {
		//表示クリア
		ctx.clearRect(0, 0, cW, cH);
		//座標調整
		adjustXY(e);
		//矩形を描く
		ctx.beginPath();	//線を描くと宣言
		ctx.fillStyle = "#000000";
		ctx.fillRect(0, 0, cW, cH);	//塗りつぶした矩形を描画
		//テキストの描画
		ctx.globalAlpha = 1;
		ctx.fillStyle = "#666666";
		ctx.fillText("X座標：" + mouseX, 5, 12);
		ctx.fillText("Y座標：" + mouseY, 5, 24);
		ctx.fillText("イベント：マウスアウト", 5, 36);
	}
	function adjustXY(e) {
		var rect = e.target.getBoundingClientRect();
		mouseX = e.clientX - rect.left;
		mouseY = e.clientY - rect.top;
	}
}

</code></pre>

注意点として、座標はウインドウの左上からが基準となるっぽいんで、「getBoundingClientRect()」を使って要素の絶対座標を取得し座標位置を調整すると良い感じらしい。

今はいちいち画面をクリアしているんだけども、ちょっと軽くカスタマイズすれば、簡単なお絵かきツールが作れそうな予感。

canvas を画像に変換することもできるみたいだし（うろ覚え）、またちょっと時間ある時にチャレンジしてみようかなー。

<dl>
<dt>参考情報</dt>
<dd><a class="ex" href="http://www.akibahideki.com/blog/html5-canvas/">HTML5 canvas学習</a></dd>
<dd><a class="ex" href="http://cpplover.blogspot.com/2009/06/html5canvas.html">本の虫: HTML5のcanvasを使ってみた</a></dd>
<dd><a class="ex" href="http://sites.google.com/site/gorogoronyan/Home/javascript#TOC-2">HTML5 Canvasのサンプル (gorogoronyan)</a></dd>
<dd><a class="ex" href="http://d.hatena.ne.jp/javascripter/20080531/1212264942">getBoundingClientRect()を使って要素の絶対座標を求める - 素人がプログラミングを勉強するブログ</a></dd>
</dl>

さて、本来の仕事に戻るかなー。うへー。]]>
      
   </content>
</entry>
<entry>
   <title>HTML5 の canvas でアニメーションさせてみる</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/03_110513.html" />
   <id>tag:1ka2ka.com,2010://14.2069</id>
   
   <published>2010-06-03T02:05:13Z</published>
   <updated>2010-06-03T02:04:55Z</updated>
   
   <summary>HTML5 の canvas での javascript も Flash のアクションスクリプトもわりと共通性が高いんで、引き続き、HTML5 の canvas でアニメーション処理を行ってみた。 サ...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="151" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1177" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="832" label="アニメーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1178" label="タイマー" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1176" label="描画" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[HTML5 の canvas での javascript も Flash のアクションスクリプトもわりと共通性が高いんで、引き続き、HTML5 の canvas でアニメーション処理を行ってみた。

サンプルは三角関数を使ったアニメーション。ちょうど、このブログでエントリしている「<a href="/archives/200507/14_154525.html">三角関数とFLASH</a>」が、同じようなアニメーションの記事があるので、これをもとに作ってみた。

<a href="/uploadfile/100603/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100603/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100603/preview.png"></a>

<a href="/uploadfile/100603/animeCanvas.html" onclick="javascript:window.open('/uploadfile/100603/animeCanvas.html','animeCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

IE は無理っぽい感じか…？
Firefox や Safari、Chrome あたりだと問題無く動作しているようだ。

まぁ、こんな感じで円のオブジェクトがクルクル回るようなアニメーション。座標だけではなく、大きさや透明度なども調整を加えてみた。

基本的にはタイマーで一定時間ごとに座標計算して描画する感じ。

Flash で BitmapData の描画アニメーションさせるのとそう大きく違いはないんで、比較的すんなりとこのサンプルを作成することができた。

少し、ハマってしまったのが、円オブジェクトを描画する前に「beginPath()」を記述し忘れてしまい、表示クリアが正常に行われなかった…。ちょっとしばらくの間「なんでだ？なんでだ？」とあれこれ原因を調べる結果となってしまったので今度からは注意しよう。

javascript のコードはこんな感じ。

<pre><code>
var timerID;
var cW = 600;	//キャンバス横サイズ
var cH = 300;	//キャンバス縦サイズ
var i = 0;	//角度の初期値
var div = 5;	//角度の増源値
var objX = 300;	//オブジェクトのX座標
var objY = 150;	//オブジェクトのY座標
var objS;	//オブジェクトのサイズ
var objA;	//オブジェクトの透明度
var maxAlpha = 1;//最大アルファ値
var defScall = 20;	//オブジェクトのデフォルトサイズ
var radiusX = cW / 2 - 50;	//横の半径
var radiusY = cH / 2 - 50;	//縦の半径
window.onload = function() {
	setTimer();
};
function setTimer(){
	clearInterval(timerID);
	timerID = setInterval("setMove()", 50);
}
function setMove(){
	//角度調整
	i += div;
	//パラメータの計算
	divSin = Math.sin(i / 360 * 2 * Math.PI);
	divCos = Math.cos(i / 360 * 2 * Math.PI);
	objX = divSin * radiusX + cW / 2;	//X座標
	objY = divSin * radiusY + cH / 2;	//Y座標
	objS = (divCos + 2) / 2 * defScall;	//大きさ
	objA = (divCos + 2) / 2 * maxAlpha;	//透明度
	
	//描画処理
	draw();
}
function draw() {
	//キャンバスの初期処理
	var canvas = document.getElementById('testCanvas');
	if ( ! canvas || ! canvas.getContext ) return false;
	//2Dコンテキスト
	var ctx = canvas.getContext('2d');
	//表示クリア
	ctx.clearRect(0, 0, cW, cH);
	
	//円を描く
	ctx.beginPath();
	ctx.globalAlpha = objA;
	ctx.fillStyle = "#CC0000";
	ctx.arc(objX, objY, objS, 0, Math.PI * 2, false);
	ctx.fill();
	
	//テキストの描画
	ctx.globalAlpha = 1;
	ctx.fillStyle = "#666666";
	ctx.fillText("X座標：" + objX, 5, 12);
	ctx.fillText("Y座標：" + objY, 5, 24);
	ctx.fillText("大きさ：" + objS, 5, 36);
	ctx.fillText("透明度：" + objA, 5, 48);
}
</code></pre>

最初に「setTimer()」が実行してタイマー処理が開始され、一定時間ごとに「setMove()」⇒「draw()」が繰り返し実行し、結果アニメーションを表現することができる。

<dl>
<dt>参考情報</dt>
<dd><a class="ex" href="http://blog.surfboard.co.jp/staff/archives/2009/10/html5canvas.php">HTML5のcanvas要素を使ってアニメーションを作る | 波乗りスタッフ日記/Web制作/コンサルティング/サーフボード</a></dd>
<dd><a class="ex" href="http://sites.google.com/site/gorogoronyan/Home/javascript">HTML5 Canvasのサンプル (gorogoronyan)</a></dd>
</dl>]]>
      
   </content>
</entry>
<entry>
   <title>とりあえず HTML5 の canvas でランダムに簡単な図形を描画してみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201006/02_174850.html" />
   <id>tag:1ka2ka.com,2010://14.2068</id>
   
   <published>2010-06-02T08:48:50Z</published>
   <updated>2010-06-03T02:05:07Z</updated>
   
   <summary>なんか、HTML5 の canvas がちょっと面白そうだってことで、どんなもんか試してみた。 とりあえずは、乱数を使ってランダムで3パターンの簡単な描画が表示されるようにしてみる。 ⇒サンプルを見る...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1174" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="380" label="Flash" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1175" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1176" label="描画" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[なんか、HTML5 の canvas がちょっと面白そうだってことで、どんなもんか試してみた。

とりあえずは、乱数を使ってランダムで3パターンの簡単な描画が表示されるようにしてみる。

<a href="/uploadfile/100602/testCanvas.html" onclick="javascript:window.open('/uploadfile/100602/testCanvas.html','testCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress=""><img alt="" src="/uploadfile/100602/preview.png"></a>

<a href="/uploadfile/100602/testCanvas.html" onclick="javascript:window.open('/uploadfile/100602/testCanvas.html','testCanvas','width=640,height=400,scrollbars=yes,toolbar=yes'); return false;" onkeypress="">⇒サンプルを見る（別ウインドウ）</a>

IE の場合、基本的に canvas に対応していないが、「ExplorerCanvas」という javascript ライブラリを利用すると同じように描画が可能となるようだ。しかし、なんかうまく描画されない箇所もある…。完全な対応状況ではないってことかな？

canvas 自体は基本的に何も表示されないらしく、javascript で線や円などの図形を描画する処理を行わないと意味がないようだ。

あと、基本的にアニメーションすることができないらしい。といっても、1コマごと描画を繰り返すことでアニメーションのように見せることが可能らしい。よく Flash と比較されるんで、てっきりアニメーションなども対応しているかと思ったけども違うんだねー。うーむ…。

しかし、今回の canvas のサンプル描画については、Flash の BitmapData の描画などにも共通する部分があるので馴染み深い印象。

ちなみに、javascript のコードはこんな感じ。

<pre><code>
window.onload = function() {
	draw();
};
function draw() {
	//キャンバスの初期処理
	var canvas = document.getElementById('testCanvas');
	if ( ! canvas || ! canvas.getContext ) return false;
	
	//2Dコンテキスト
	var ctx = canvas.getContext('2d');
	
	//ランダム数値
	var ranNo = Math.floor(Math.random() * 3);
	
	if (ranNo == 0) {
		//線の色設定
		ctx.strokeStyle = "#8080ff";
		//三角形を描く
		ctx.beginPath();	//線を描くと宣言
		ctx.moveTo(20, 20);	//描き始めるXY座標を指定
		ctx.lineTo(20, 280);	//引きたい線のXY座標を指定
		ctx.lineTo(480, 280);	//引きたい線のXY座標を指定
		ctx.closePath();	//描いた線を閉じる
		ctx.stroke();		//描画
		//テキストの描画
		ctx.font = '24px';
		ctx.fillStyle = "#DD0000";
		ctx.textBaseline = "top";
		ctx.fillText("No.1（全3種） 三角形を描く", 10, 24);
	} else if (ranNo == 1) {
		//塗りの色設定
		ctx.fillStyle = "#008080";
		//矩形を描く
		ctx.beginPath();	//線を描くと宣言
		ctx.fillRect(50, 50, 500, 200);	//塗りつぶした矩形を描画
		ctx.beginPath();	//線を描くと宣言
		ctx.clearRect(300, 150, 200, 80);	//矩形を削除
		//テキストの描画
		ctx.font = '24px';
		ctx.fillStyle = "#666666";
		ctx.textBaseline = "bottom";
		ctx.fillText("No.2（全3種） 矩形を描く", 10, 24);
	} else if (ranNo == 2) {
		//グラデーション領域設定
		var grad  = ctx.createLinearGradient(200, 100, 400, 200);
		//グラデーション
		grad.addColorStop(0,'#DD0000');    // 赤
		grad.addColorStop(0.5,'#0000DD'); // 青
		grad.addColorStop(1,'#00DD00');  // 緑
		//塗りの色設定
		ctx.fillStyle = grad;
		//円を描く
		ctx.arc(300, 150, 150, 0, Math.PI*2, false);
		ctx.fill();
		//テキストの描画
		ctx.font = '24px';
		ctx.fillStyle = "#FF66CC";
		ctx.textBaseline = "middle";
		ctx.fillText("No.3（全3種） グラデーションの円を描く", 10, 24);
	}
}
</code></pre>


キャンバスの初期処理や 2D コンテキストの処理は決まりごとみたいな感じのようなので特に記述を調整する必要はなさそう。

もしかして、いずれは 3D とかの描画に対応してくるのかなー？

<dl>
<dt>参考情報</dt>
<dd><a class="ex" href="http://ascii.jp/elem/000/000/418/418912/">ASCII.jp：HTML5先取り！CanvasならFlash不要で絵が描ける</a></dd>
<dd><a class="ex" href="http://www.html5.jp/canvas/">Canvas - HTML5.JP</a></dd>
<dd><a class="ex" href="http://hebita.jp/dev/html5/canvas.php#char">開発メモ HTML5 canvas - 蛇田.jp</a></dd>
<dd><a class="ex" href="http://layout-blue.com/2010/04/14/html5_canbas_03/">HTML5　canvas -その3- | LayOut blue</a></dd>
</dl>
]]>
      
   </content>
</entry>
<entry>
   <title>ちょっと衝動的に HTML5 の video タグを試してみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201005/28_164514.html" />
   <id>tag:1ka2ka.com,2010://14.2064</id>
   
   <published>2010-05-28T07:45:14Z</published>
   <updated>2010-05-31T11:20:29Z</updated>
   
   <summary>ようやく HTML5 手がけてみることに まぁ、なんか Flasher にとっては少し活躍の場を奪われそうな HTML5 の様々な機能だが、便利なものは便利。 別に Flash vs HTML5 って...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="HTML5" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1157" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1160" label="mp4" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1159" label="obm" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1158" label="video" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1161" label="webm" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1162" label="フォーマット" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="964" label="動画" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1164" label="変換" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1163" label="形式" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[<h2>ようやく HTML5 手がけてみることに</h2>

まぁ、なんか Flasher にとっては少し活躍の場を奪われそうな HTML5 の様々な機能だが、便利なものは便利。

別に Flash vs HTML5 ってわけではなく、それぞれのメリットを活かしていきたいなーと思って、とりあえず HTML5 の video タグを試してみた。

<h2>HTML5 の video タグについて</h2>

とりあえず、HTML5 の  video ってどうすりゃいいの？ってことで、簡単に情報を集めている。

<dl>
<dt>HTML5 の video タグについての情報</dt>
<dd><a class="ex" href="http://builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/story/0,3800087566,20379994-2,00.htm">Firefox 3.1のHTML 5対応--video/audio要素のサポート - page2 - builder by ZDNet Japan</a></dd>
<dd><a class="ex" href="http://www.htmq.com/html5/004.shtml">videoタグで動画を埋め込む－そろそろ、HTML5</a></dd>
<dd><a class="ex" href="http://thinkit.co.jp/article/48/2/2.html">[Think IT] 第2回：HTML 5の機能を試す！ (2/3)</a></dd>
<dd><a class="ex" href="http://www.yomotsu.net/wp/?p=541">HTML 5 の video | ヨモツネット</a></dd>
</dl>

まぁ、端的に言えば、img タグと同じようなもんか。もちろん、あれやこれやとする場合は、css や javascript 等も絡んでくるのだろうけども、基本は本当に単純なものみたい。

<h2>早速 HTML5 の video タグを試してみる</h2>

とりあえず、動画ファイルについては、過去に作った遺物をサンプルとして晒してみる。

<video controls autoplay poster="/uploadfile/100528/img.gif" width="320" height="240">
<source src="/uploadfile/100528/the_time_when_it_snows.ogv" type="video/ogg">
<source src="/uploadfile/100528/the_time_when_it_snows.mp4" type="video/mp4">
<source src="/uploadfile/100528/the_time_when_it_snows.webm" type="video/webm">
<p>動画を再生するには video タグをサポートしたブラウザが必要です。</p>
</video>

<s>とりあえず、Safari4 と Google Chrome で動画が見れるようだ。FireFox3.6 は何故かダメ…汗</s>
<strong>⇒上記現象は無事に解決。ページ下部に情報を記載済み</strong>

↓HTMLソースはこんな感じ

<pre><code>
&lt;video&nbsp;controls&nbsp;autoplay&nbsp;poster=&quot;/uploadfile/100528/img.gif&quot;&nbsp;width=&quot;320&quot;&nbsp;height=&quot;240&quot;&gt;
&lt;source&nbsp;src=&quot;/uploadfile/100528/the_time_when_it_snows.ogv&quot;&nbsp;type=&quot;video/ogg&quot;&gt;
&lt;source&nbsp;src=&quot;/uploadfile/100528/the_time_when_it_snows.mp4&quot;&nbsp;type=&quot;video/mp4&quot;&gt;
&lt;source&nbsp;src=&quot;/uploadfile/100528/the_time_when_it_snows.webm&quot;&nbsp;type=&quot;video/webm&quot;&gt;
&lt;p&gt;動画を再生するには&nbsp;video&nbsp;タグをサポートしたブラウザが必要です。&lt;/p&gt;
&lt;/video&gt;
</code></pre>

ポイントとして、動画ファイルのソースを複数記述している。

HTML5 の video タグ自体は非常に簡単なんだけども、この再生される動画のフォーマットが、現状、ブラウザによってバラバラになっている状況らしい。

<dl>
<dt>HTML5 のビデオコーデック対応状況について</dt>
<dd><a class="ex" href="http://journal.mycom.co.jp/news/2010/01/27/033/index.html">HTML5 video、ブラウザ対応状況とコーデックまとめ | エンタープライズ | マイコミジャーナル</a></dd>
</dl>

なので、ソースで複数の動画フォーマットのファイルを用意しておくことで、対応されている動画が再生されるようになるらしい。

それにしても、複数の動画フォーマットを用意するのは結構面倒だよね…（汗）

あとは、最新の情報としてこんな情報もあるようだ。

<dl>
<dt>HTML5 のビデオコーデックの今後？</dt>
<dd><a class="ex" href="http://headlines.yahoo.co.jp/hl?a=20100520-00000002-zdn_ait-sci">グーグルがVP8をOSS化、HTML5のvideo問題が決着か（＠IT） - Yahoo!ニュース</a></dd>
</dl>

なんで、ついでに「.webm」の動画フォーマットもソースに記述してみた。

ただ、ビデオコーデック対応については、もうしばらく様子見って感じかな。これも結局ちゃんと統一されないと、またとんでも無く面倒な状況になりそうで怖いねー ∑（゜Д゜；）

<h2>動画フォーマットの変換</h2>

ちなみに動画フォーマットの変換は下記のソフトで行った。

<dl>
<dt>「Miro Video Converter」の紹介</dt>
<dd><a class="ex" href="http://www.moongift.jp/2010/04/miro-video-converter/">MOONGIFT: iPhone/Android向けに動画を変換する「Miro Video Converter」:オープンソースを毎日紹介</a></dd>
<dt>「Miro Video Converter」のダウンロード</dt>
<dd><a class="ex" href="http://www.mirovideoconverter.com/">Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.</a></dd>
</dl>

<s>ただ、今回は何故か Theora（.ogv） で書き出した動画フォーマットが Firefox3.6 で再生されなかった…。</s>

<s>なんでだろう…。他のソフトなどで変換するとちゃんと再生されるのだろうか…？うーん。良く分からないなー。</s>

<h2><strong>＜追記＞</strong></h2>

<strong>FireFox3.6 で動画が再生されない件だが、下記サイトの情報で無事解決！</strong>

<dl>
<dd><a class="ex" href="http://d.hatena.ne.jp/nakamura001/mobile?date=20100306&section=1267868316">強火で進め</a></dd>
</dl>

.htaccess に下記を記述すると、無事に FireFox3.6 でも再生されるようになった！

<pre><code>
AddType video/ogg .ogg .ogv
AddType audio/ogg .ogg
AddType application/ogg .ogg .ogv
</code></pre>]]>
      
   </content>
</entry>
<entry>
   <title>[FL11] 階層構造を持たせた Flash Lite のメニュー サンプル</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201004/01_000830.html" />
   <id>tag:1ka2ka.com,2010://14.2029</id>
   
   <published>2010-03-31T15:08:30Z</published>
   <updated>2010-03-31T15:19:27Z</updated>
   
   <summary>Flash Lite を利用してトップメニューを作成するコンテンツも最近どんどん多くなってきている。 ビジュアル的にも訴求できるし、インタラクティブ的な動きで効果的な導線も用意・表現が可能となる。 た...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="4000-Flash Lite 1.0 / 1.1" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="810" label="Flash Lite" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="462" label="カテゴリ" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="761" label="サンプル" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1062" label="タブ" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="720" label="ボタン" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1059" label="メニュー" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1063" label="目的別" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1060" label="階層" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1061" label="順番" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[Flash Lite を利用してトップメニューを作成するコンテンツも最近どんどん多くなってきている。

ビジュアル的にも訴求できるし、インタラクティブ的な動きで効果的な導線も用意・表現が可能となる。

ただ、そのメニュー構成で、あまり階層構造を持たせているものは、あまり観たことがなかったので、ちょっとサンプルなんぞを作ってみた。

<a href="http://1.000.vc/fl11_menu/fl11_menu.swf"><img src="http://1.000.vc/fl11_menu/img.gif" alt="階層構造を持たせた Flash Lite のメニュー サンプル" /></a> <img src="http://1.000.vc/fl11_menu/qr.gif" alt="階層構造を持たせた Flash Lite のメニュー サンプル" />

例えば、タブメニューで中身が切り替わり、それぞれボタン制御ができるっていうサンプル。

目的別やカテゴリごとに内容を切り替えると使えるかなーと思ったりするんだけども、どうだろうか？

<h2>Flash Lite 1.1 はの順番を制御することができない</h2>

ちなみに、このコンテンツを作る以前の問題で、Flash Lite 1.1 ってボタンの順番を制御することができないらしい。でも、ちょいと面倒だけども解決方法はある。こちらのサイトを参照。

<dl>
<dt><a href="http://www.kadoyan.com/item/482/">【今さらFlashLite 1.1】ボタンの選択順をコントロール｜ KADOYAN.com</a></dt>
</dl>

簡単に言ってしまえば、普通にメインのボタンを用意しつつ、実際には見えないようにしたダミーボタンで表示などを制御していくってこと。

この方法でよいのはダミーボタンの配置を入れ替えればボタンの順番などを変更できるので、それはそれで、まぁ便利かなー。

<h2>今回のサンプルのポイント</h2>

んで、今回のタブメニューサンプル。

大枠として下記の 2 つのシンボルを用意する

○メインコンテンツ
○ダミーボタン

んで、デフォルト時やそれぞれのタブが選択された状態などをフレームなどで分けておく。

下図はメインコンテンツをフレーム分けしたものではあるが、ダミーボタンの方も同じようにフレーム分けをしておく。

<img src="/uploadfile/100329/01.gif" alt="" width="497" height="276" />

あとは、ダミーボタンのそれぞれのボタンのロールオーバーに合わせて、メインコンテンツの表示などを制御していくだけ。

スクリプトなどを解説するようなほどのことはしていないので、詳しくはサンプルファイルを参照してもらえればと。

四角（■）が横に4つ並んでいる「db」オブジェクト。フレーム別にボタンがずらずらと配置されているのだが、これらのボタンに記述されているスクリプトがほぼメイン的な処理となる。

<pre><code>
▼ルートの1フレーム目
----------
fscommand2("FullScreen", true);
fscommand2("SetQuality", "high");
//_focusrect = false;
//db._alpha = 0;
</code></pre>

あと、ルートの1フレーム目のスクリプト、サンプルで視覚的に確認できるようにコメントアウトしてある部分があるのだけども、実際にはコメントを外して処理させるのが正解。

<h2>サンプルファイルのダウンロード</h2>

<div class="dl">
<strong>ダウンロード</strong>
<ul>
<li><a href="http://1.000.vc/fl11_menu/fl11_menu.zip">サンプルファイル</a> （15.6KB） Flash CS3 形式</li>
</ul>
</div>]]>
      
   </content>
</entry>
<entry>
   <title>Flash と FeliCa の連動サンプルを作ってみた</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201003/19_163937.html" />
   <id>tag:1ka2ka.com,2010://14.2019</id>
   
   <published>2010-03-19T07:39:37Z</published>
   <updated>2010-03-19T09:22:23Z</updated>
   
   <summary> 社内からこんなん作れないかってことで、Flash と FeliCa を連動したタイムレコーダの簡単なサンプルを作ってみた。 動画を見て分かるように、FeliCa のリーダーにおサイフケータイなどをタ...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="2100-Action Script 3.0" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="1044" label="FeliCA" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="1046" label="SDK" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/0ngUsJFto6Q&hl=ja_JP&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0ngUsJFto6Q&hl=ja_JP&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>

社内からこんなん作れないかってことで、Flash と FeliCa を連動したタイムレコーダの簡単なサンプルを作ってみた。

動画を見て分かるように、FeliCa のリーダーにおサイフケータイなどをタッチすると、ぴょこんとパネルが開いて登録完了と表示される。

このタッチした時に、IDm という ID が取得できるので、その ID とタッチした時間を DB に登録。ちょっと分かりづらいかもしれないが、タッチした後に DB のテーブル確認画面ページを更新すると表組みが1行増えているのが分かると思う。

入退室時に各自のおサイフケータイなどをタッチすることで、タイムレコーダとして機能させることが出来る。

もちろん、ID だと分かりづらいんで、別途 ID と名前の対応したデータを用意して、タイムレコードを閲覧できるプログラムを組めば、名前別や日付別に閲覧できるようになる。

※ちなみに、この取得できる ID ってのがほぼユニークって感じで、完全にユニークというわけでは無いらしい（汗）
でも、まぁ、よほどの数を扱わない時はユニークとしてしまって良いのかなー？用途や状況によりけりだね。

<div style="margin-top:30px;"/>&nbsp;</div>

Flash と FeliCA の連動処理については、ソニーから SDK が配付されているのでこちらを利用。

<dl>
<dt><a class="ex" href="http://www.sony.co.jp/Products/felica/pdt/adb.html">Sony Japan | SDK for FeliCa & AdobeR AIRR / AdobeR FlashR | ICS-DAF/B010J S010J</a></dt>
</dl>

概要説明のドキュメントやサンプルも充実しているので助かる。本当に簡単なサンプルはサクサクと作ることができると思う。

<div style="margin-top:30px;"/>&nbsp;</div>

参考にしたサイトはこちら。

<dl>
<dt><a class="ex" href="http://www.ark-web.jp/sandbox/wiki/5322.html">Flash/FeliCa ナイトでFlashによるFeliCaとの通信をする勉強会に参加しました - アークウェブシステム開発SandBox</a></dt>
<dt><a class="ex" href="http://www.slideshare.net/satorii/felica-night-20090129">[02]Felica Night 2nd 20100129</a></dt>
<dt><a class="ex" href="http://i9001f.hp.infoseek.co.jp/felica/source.html">Felica 開発</a></dt>
<dt><a class="ex" href="http://www.adobe.com/jp/newsletters/edge/august2009/articles/article1/index.html">Adobe Edge: 2009年8月 AIR／FlashでFeliCa対応のアプリ開発が可能に</a></dt>
</dl>

<div style="margin-top:30px;"/>&nbsp;</div>

今だと、ほとんどの人が何かしら FeliCA と関連しているアイテムを所持しているっぽいので、アイディア次第ではイベントとかで面白いことができるかもしれない。

ただ、何でもできるってわけじゃなく制限も多いんで、そこがちょっと難しいところ…（汗

PS.
タッチする時に何か音を鳴らすと良いかもしれないとふと思ったり。後でちょっと試してみよう。]]>
      
   </content>
</entry>
<entry>
   <title>Flash Lite に関する小技系をメモしておく</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201002/25_185455.html" />
   <id>tag:1ka2ka.com,2010://14.2010</id>
   
   <published>2010-02-25T09:54:55Z</published>
   <updated>2010-02-25T09:59:14Z</updated>
   
   <summary>今年は Flash をあれこれやろうと思い、とりあえず、mixi アプリがどんなものかとデベロッパー登録をしたところまでは良かったんだけども、その時点から一気にバタバタと忙しい状況に突入…。 まあ、F...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="4000-Flash Lite 1.0 / 1.1" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="5000-Flash Lite 2.0 / 3.0" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      <![CDATA[今年は Flash をあれこれやろうと思い、とりあえず、mixi アプリがどんなものかとデベロッパー登録をしたところまでは良かったんだけども、その時点から一気にバタバタと忙しい状況に突入…。

まあ、Flash については、あまり進捗がないものの、ビジネススキルという点においては、年始早々からいろいろと勉強になる体験が多い。こっちも非常に重要なことなんで、とりあえずは Flash は置いておいて、今の貴重な体験を噛みしめていこうと思う。

ちょっとしたネタとして、最近、Flash Lite についてちょこちょこと調べたことがあるんで、メモをしておこうと思う。

<dl>
<dt><a class="ex" href="http://blog.alt-scape.com/archives/350">Flash Liteからブックマーク（お気に入りに登録）するときのタイトル指定</a></dt>
<dd>Flash Lite コンテンツをブックマークする時にいつも思う、URL のそっけないタイトル。au で Flash Lite 2.0 以降の場合はタイトルの指定が可能らしい。いつか役立ちそう。</dd>
<dt><a class="ex" href="http://pw6.jp/category/flashlite/">Flash Lite Archive | 美術部</a></dt>
<dd>Flash Lite のファイルサイズやメモリ関連などの検証記事などが非常に役立ちます。特にファイルサイズに困った時はこちらの情報を参考に。</dd>
<dt><a class="ex" href="http://www.adobe.com/jp/devnet/devices/articles/environment_flashlite.html">Flash Lite入門講座　第2回　Flash Liteの再生環境から見た注意点</a></dt>
<dd>画面サイズについてのアレコレ。これまで画面サイズを 240×240 で作成していたけども、もう 240×260 にシフトしていこうかなー。</dd>
<dt><a class="ex" href="http://www.plusmb.jp/2009/10/01/4510.html">ケータイFlashのmailtoリンクを３キャリア対応にしてみよう</a></dt>
<dd>こちら個人的にもハマった事例。これで万全ではないかもしれないが、ある程度の機種をカバーできるかもねー。</dd>
<dt><a class="ex" href="http://allabout.co.jp/gs/flash/closeup/CU20090201A/index5.htm">今さら聞けない！Flash Liteの基礎知識 - ［Flash］All About</a></dt>
<dd>基本中の基本なんだけども意外と知らなかったりする？「iswf=」属性で Flash Lite の再生可能機種を気軽に振り分ける方法。使える時があるかもしれない。</dd>
<dt><a class="ex" href="http://tech.buzoo.jp/2009/07/flash.html">携帯Flash対応端末と非対応端末を振り分ける</a></dt>
<dd>例えば、トップページが Flash Lite の場合、非対応機種を別途 HTML ページにジャンプさせるなど。最近の機種はほとんど大丈夫だと思うけども、しっかりと振り分けが必要な場合。機種情報については「<a class="ex" href="http://428.to/blog/200706/06214759.html">よびこむ: mod_rewriteでFlash対応携帯を自動判別する方法</a>」を参考にすると便利。</dd>
</dl>

結構、細かいことが多いけども、個人的には最近立て続けに参考にさせてもらった情報。
覚えておくと便利なシーンも今後あるはずっ！

そらいけっ！]]>
      
   </content>
</entry>
<entry>
   <title>2010年！</title>
   <link rel="alternate" type="text/html" href="http://1ka2ka.com/archives/201001/10_171908.html" />
   <id>tag:1ka2ka.com,2010://14.1981</id>
   
   <published>2010-01-10T08:19:08Z</published>
   <updated>2010-01-15T02:56:53Z</updated>
   
   <summary>あけましておめでとうございます（おそっ！） とっくに正月ムードなんて終了して普通に忙しい毎日を送りつつある今日この頃、寒さに負けじと熱い想いを持てるよう精進してみたいと、今年の目標なんぞを考えてみた。...</summary>
   <author>
      <name>ヒカル</name>
      
   </author>
         <category term="6000-心意気" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="507" label="目標" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://1ka2ka.com/">
      あけましておめでとうございます（おそっ！）

とっくに正月ムードなんて終了して普通に忙しい毎日を送りつつある今日この頃、寒さに負けじと熱い想いを持てるよう精進してみたいと、今年の目標なんぞを考えてみた。

----------
■楽観する
今年のメインテーマ。
結構忙しかったりタスクが増えるとそれらを即こなそうとして焦って余裕を無くしたりすることも多々あるんで、今年は、逆に楽観視できるようになりたいかな。『楽観とは、真の精神的勇気だ』なんて言葉も去年に感銘を受けたばかりだし。
----------
■1 日 1 Flash
まぁ、基本的に、こんな Flash ブログを書いているくらいなんで、今年はもう少しいろいろなネタを収集したり、サンプルを作成したり、面白いコンテンツなどを作っていきたいなーと。無理だと思うけども、ちょっと大げさに 1 日 1 Flash と大きく出てみる。
----------
■本を読む
去年は、わりと本を読んではいたんだけども、東野圭吾と伊坂幸太郎などにハマって小説が多かったので、今年はビジネス書なども合わせて多くの本を読んでいきたいなーと思う。
----------
■外へ出る・飲む
こちらも去年は「家⇔会社」の生活が多かったんで、もっといろいろと外に出ていきたいなと思う。セミナーとかイベントとかそんなのを。合わせてみんなで飲む機会も多めにしたい。
----------
■健康・ストレス発散
去年からいろいろと体のメンテナンスをしているんで、今年もそれを継続。
体力的にも、去年から始めたゴルフを継続すること。さらに上手くなってもっと面白く遊べるようにしたい。もちろん運動することによってシェイプアップも視野に。
あとはモチベーションを維持・向上を図るために、あまりストレスを溜めないようにする。
----------

とりあえずは、こんな感じかな。

あとは、個人で運営しているサイトの更新頻度を増やしたり、新しいコンテンツを作ったりもしていきたいかな。

そんなわけで今年もヨロシクー♪
      
   </content>
</entry>

</feed>
