<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>キテレツ荘 &#187; FLASH</title>
	<atom:link href="http://www.kiteretsu-so.com/archives/category/flash/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kiteretsu-so.com</link>
	<description>関西で活動するクリエーターたちによるシェアブログ キテレツ荘。クリエイティブな話題を住人達が発信中。</description>
	<lastBuildDate>Mon, 17 Oct 2011 23:20:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ハッタリ企画解体新書【ハッタリくんFlash】</title>
		<link>http://www.kiteretsu-so.com/archives/1773</link>
		<comments>http://www.kiteretsu-so.com/archives/1773#comments</comments>
		<pubDate>Wed, 07 Apr 2010 15:07:09 +0000</pubDate>
		<dc:creator>かしこ</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[コンテンツ]]></category>

		<guid isPermaLink="false">http://www.kiteretsu-so.com/?p=1773</guid>
		<description><![CDATA[ようこそのお運び、厚く御礼申し上げます。 キテレツ荘で暗部を担当しております、かしこい風なだけのかしこです。 何か記事を書かねばと思いはや数日。 ここはやっぱりこれですかね。 ハッタリ企画解体新書。 リニューアルに併せて [...]]]></description>
			<content:encoded><![CDATA[<p>ようこそのお運び、厚く御礼申し上げます。<br />
キテレツ荘で暗部を担当しております、かしこい風なだけのかしこです。</p>
<p>何か記事を書かねばと思いはや数日。<br />
ここはやっぱりこれですかね。</p>
<p>ハッタリ企画解体新書。</p>
<p>リニューアルに併せてハッタリなコンテンツを作ろうとなったのが2月末。<br />
3月末までにハッタリコンテンツと称して「<a href="http://www.kiteretsu-so.com/kashiko_work/hattari/index.php" target="_blank">キテレツWEB2.015</a>」なる群れを用意しました。</p>
<p>・虚勢を張ってみよう。<br />
・キテレツ忍者ハッタリくん<br />
・おまけのキテレツボット<br />
・さらにおまけのキテレツ時計</p>
<p>その中でも<a href="http://twitter.com/tonka1981jp" target="_blank">@tonka</a>氏より解体依頼がありました”キテレツ忍者ハッタリくん”を解体してみようかしら。。。</p>
<p><span id="more-1773"></span><br />
まず、この記事はFlashの基本は抑えているものとしております旨、ご了承ください。<br />
基本から抑えたい場合は下記のサイトをご参照ください。</p>
<p>Flashゲーム講座 &amp; アクションスクリプトサンプル集（いろんな方もリスペクトしている神サイトです）<br />
<a href="http://hakuhin.jp/as.html" target="_blank">http://hakuhin.jp/as.html</a></p>
<p>ざっとしたパート構成案を考察</p>
<p>■タイトル<br />
■名前等入力画面<br />
■ゲーム部分<br />
■結果<br />
■ランキング</p>
<p>【前提】<br />
ほぼすべての動きをAS化させて軽量にする。<br />
シームレス感を持たす。</p>
<p><a href="http://www.kiteretsu-so.com/kouhaku/shiro/" target="_blank">相撲鳥人間</a>の際も軽量化はしていましたがどうしてもランキングやデータ登録周りでシームレス感がなかったことへの反省です。<br />
ということで今回は登録まわりも含めた全編Flashでいくことにしました。</p>
<p>スクリプトバージョンはFlashプレーヤーバージョン9を鑑みてAS2を利用。<br />
（AS3わからないのは内緒⇒この後、キテレツ時計のためにAS3に踏み込んだのも内緒）</p>
<p>大まかな流れを決めればパーツの作成へ移行</p>
<p><strong>■タイトル</strong><br />
この時点でハイスコアとプレイNOを取得します。<br />
プレイNOはデータ管理のために利用しているのと後述のランキング更新判定にも利用しています。<br />
<strong><span style="color: #ff6600;">loadVariables()</span></strong></p>
<p><strong>■名前入力</strong><br />
名前・目標ちくわの設定画面で特に解説の必要はないかと。<br />
名前の漢字NG設定とちくわ入力は最大999までに設定しているくらいです。<br />
<span style="color: #ff6600;"><strong>restrict</strong></span></p>
<p><strong>■ゲーム部分</strong><br />
ちくわを発生させてキャラクターとの当たり判定、ちくわ数等を取得する重要パートです。</p>
<p>①ちくわオブジェクトの動き<br />
<a href="http://hakuhin.jp/as/move.html#MOVE_05" target="_blank">http://hakuhin.jp/as/move.html#MOVE_05</a><br />
放物線を描く自由落下の動きにランダム要素を追加</p>
<p>②ちくわオブジェクトをランダムで鉄アレイ化</p>
<p>③キャラオブジェクトとの当たり判定<br />
<a href="http://hakuhin.jp/as/hittest.html#HITTEST_04" target="_blank">http://hakuhin.jp/as/hittest.html#HITTEST_04</a><br />
当たり判定を取得して、ちくわ数と裏で実行している鉄アレイ指数を計算。<br />
<span style="color: #ff6600;"><strong>hitTest() </strong></span><br />
<span style="color: #ff6600;"><strong>Key.○○○()</strong></span></p>
<p>④ちくわオブジェクトの複製<br />
<a href="http://hakuhin.jp/as/movieclip.html#MOVIECLIP_07" target="_blank">http://hakuhin.jp/as/movieclip.html#MOVIECLIP_07</a><br />
①で作ったちくわを複製します。複製回数の指定も含みます。<br />
複製したちくわに個別のプロパティを持たす必要が発生するところで激しくツマリましたが・・・<br />
attachMovie()関数内にてonEnterFrameで個別処理！他にもやり方はあるでしょうが・・・（eval関数が使えるなら他のやり方もありますが）<br />
<span style="color: #ff6600;"><strong>attachMovie()</strong></span></p>
<p><strong>■結果</strong><br />
ハッタリ指数という訳のわからない指数の計算と結果を登録する重要パートです。<br />
ハッタリ指数とは目標ちくわ数に設定された基礎倍率と目標に対する取得ちくわの達成率を掛けたモノです。</p>
<p>①ハッタリ指数の計算式を導入</p>
<p>②ハッタリ指数に対するコメントとコメンテーターを決められた値に準じてランダムに表示。</p>
<p>③phpに取得ちくわ、ハッタリ指数、名前をシームレスに引き渡す。<br />
<span style="color: #ff6600;"><strong>sendAndLoad()</strong></span></p>
<p><strong>■ランキング</strong><br />
ゲーム後、すぐにランキングに反映しないといけないのでどのタイミングでデータを取得するのかがキモのパートでした。<br />
結局、ランキングフェイズに行くたびにランクデータを取得するので都度ローディングしています。</p>
<p>①ハイハッタリ順にソートしておいた上位10件のデータをロード</p>
<p>②ハイスコア時のカラー変更のために現在のプレイNOとロードしたデータに記録しているNOのつき合せ処理。合致した場合、カラーが変更される。</p>
<p><strong>■バックグランド</strong><br />
<a href="http://hakuhin.jp/as/sound.html#SOUND_00" target="_blank">http://hakuhin.jp/as/sound.html#SOUND_00</a><br />
全セクションでサウンドの外部読み込みとI/Oの切り替え実装。<br />
<strong><span style="color: #ff6600;">sound_obj.setVolume();</span></strong></p>
<p>細かいパート解説とかいるようならflaファイル公開してもいいか、質問あればブロック単位で回答してもいいかとか、<br />
とも考えてますが、みなさんの要望次第でどうするかまた考えます。</p>
<p>ということで、ハッタリくんFlashパート解体新書でした。（phpパートはまったく別ものなので要望あれば解体します。）</p>
<p>感想としては・・・やってる処理に対してできあがりの印象が本当にしょぼいのがステキ。クソゲー作ろうの趣旨にはバッチリだと思います！</p>
<p>以上、長々となりましたが解体新書でした。</p>
<p>P.S　Flashは161KBに抑えました！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kiteretsu-so.com/archives/1773/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>第2弾 Flashフローティングブログパーツ</title>
		<link>http://www.kiteretsu-so.com/archives/1657</link>
		<comments>http://www.kiteretsu-so.com/archives/1657#comments</comments>
		<pubDate>Tue, 25 Aug 2009 22:47:13 +0000</pubDate>
		<dc:creator>もーりー</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[コンテンツ]]></category>

		<guid isPermaLink="false">http://www.kiteretsu-so.com/?p=1657</guid>
		<description><![CDATA[こんにちは、久々の韋駄天です。 まだまだバグ・修正箇所はありますが、とりあえずの段階でFlashフローティングブログパーツのお目見えとなりました。 キテレツ荘 Flashフローティングブログパーツの作り方の説明はまた後日 [...]]]></description>
			<content:encoded><![CDATA[<p>こんにちは、久々の韋駄天です。</p>
<p>まだまだバグ・修正箇所はありますが、とりあえずの段階で<strong>Flashフローティングブログパーツ</strong>のお目見えとなりました。</p>
<p><script type="text/javascript" charset="shift_jis" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/base.js" type="text/javascript"></script><br />
<script type="text/javascript" charset="shift_jis" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/SWFLayer.js" type="text/javascript"></script><br />
<script type="text/javascript" charset="shift_jis" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/float.js" type="text/javascript"></script><br />
<noscript><br />
<a href="http://www.kiteretsu-so.com/"  title="関西クリエーターのシェアブログ">キテレツ荘</a><br />
</noscript></p>
<p><span id="more-1657"></span></p>
<p>Flashフローティングブログパーツの作り方の説明はまた後日に回すとしまして、簡単な説明を。</p>
<ul>
<li>
<li>1、キテレツ荘のスタッフを逃がしてあげてください。（日頃うっぷんも溜まっていると思いますので。）</li>
<li>2、逃がしといてなんですが、捕まえましょうｗ（捕まえるとスタッフの記事が読めるようになります。）</li>
<li>3、見事全員捕まえることができましたら、今回制作しましたブログパーツの元データがダウンロードできます。<br />
（アクセス拒否してないので、直でURL叩けば落とせますｗ（誰か.htaccessの書き方おせーて））<br />
※flaファイルはありません。てかasが汚すぎて見せれません。。。。
</li>
</ul>
<p>以上です。</p>
<p>制作時のポイントとしましては、最近あっしが購入したiPhoneの実寸大をモデルにしたため、ムダにデカイというところです。<br />
あと右上に【×】ボタンあるんですが、小さすぎました。</p>
<p>今回のFlashフローティングブログパーツはJavascriptのリロードを多用しておりますので、読み込みの際、ちゃんと読み込まれないことがある or 前回の処理が残ったままになっているとかいろいろへんなところありますし、他、追加していきたい処理とかもありますので、時間あるときに徐々に修正していきたいと思います。</p>
<p>子供が作ったおふざけやさかい、許しておくんなまし。</p>
<p>相も変わらずふざけたことに注力している自分になさけなくなりましたが、ちょいとした興味で貼り付けてやってください。</p>
<p>ブログ貼り付け用のコードは下記。</p>
<p><script type="text/javascript" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/base.js" type="text/javascript"></script><br />
<script type="text/javascript" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/SWFLayer.js" type="text/javascript"></script><br />
<script type="text/javascript" src="http://www.kiteretsu-so.com/morita_work/float_flash2/js/float.js" type="text/javascript"></script><br />
<noscript><br />
<a href="http://www.kiteretsu-so.com/"  title="関西クリエーターのシェアブログ">キテレツ荘</a><br />
</noscript></p>
<p>これからもキテレツ荘のご支援よろしくお願いします。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kiteretsu-so.com/archives/1657/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Progressionコトハジメ　メモ。</title>
		<link>http://www.kiteretsu-so.com/archives/1496</link>
		<comments>http://www.kiteretsu-so.com/archives/1496#comments</comments>
		<pubDate>Wed, 24 Jun 2009 15:32:49 +0000</pubDate>
		<dc:creator>とんか</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.kiteretsu-so.com/?p=1496</guid>
		<description><![CDATA[とりあえず暑くなってきたので、冷麺の代わりに Progression始めました。 （CakePHPは少し放置プレイ、またそのうち返ってきます） でもまだ記事にするほどのノウハウもないので 備忘録的メモ。コメント不要。 ま [...]]]></description>
			<content:encoded><![CDATA[<p>とりあえず暑くなってきたので、冷麺の代わりに<br />
Progression始めました。<br />
（CakePHPは少し放置プレイ、またそのうち返ってきます）</p>
<p>でもまだ記事にするほどのノウハウもないので<br />
備忘録的メモ。コメント不要。<br />
<span id="more-1496"></span></p>
<p>まずProgression概念メモ。（多くは技評の記事 <a href="http://gihyo.jp/dev/feature/01/progression" target="_blank">http://gihyo.jp/dev/feature/01/progression</a>を参考）</p>
<ul>
<li>ProgressionはFlash用フレームワーク。</li>
<li>HTMLのページのようにシーンを用意して、それらを入れ替えることで簡単にページベースのサイトが作れる。</li>
<li>ページ固有のURLや右クリック対応やマウスホイール対応など、めんどいことを勝手にやってくれる。</li>
<li>固有の概念として「シーン」「キャスト」「コマンド」がある。</li>
<li>「シーン」はHTMLでいうところの「ページ的概念」、映画で例えたら「舞台」。</li>
<li>「キャスト」はHTMLでいうところの「画像や文字などの要素」、映画で例えたら「俳優」。</li>
<li>「コマンド」はHTMLでいうとなんだろ？「ソース＋JSなどの処理文？」、映画で例えたら「台本」。</li>
<li>とりあえず舞台（シーン）を必要な分、俳優（キャスト）を必要な分、用意する（自動的に吐き出されるテンプレートをコピーして準備）。</li>
<li>それぞれの舞台にいつ誰が登場し、どんな時に場面転換するか（コマンド）を書き込む。また俳優（キャスト）に登場したときにどんな振る舞いをするか、どのように去るか（コマンド）を書き込む。</li>
<li>開発スタイルには「クラス」「コンポーネント」「タイムライン」があるが、がっつりフル機能でやるなら「クラス」で開発。</li>
</ul>
<p>んでスクリプトのお作法的メモ。</p>
<ul>
<li>結構お作法を覚える必要あり。</li>
<li>Progression用関数山盛り出てくる。でも普段のActionscript ももちろん併用できる。</li>
<li>コマンドは書いた順に実行していってくれる（非同期処理）。この辺はタイマーやトゥイーンなどの処理のとき、めーちゃ楽。例えばタイマーコマンドの後に別 のコマンドを書けば、タイマー経過後、別のコマンド処理が始まる。わざわざTimerEventListenerを書いてイベントを見張る必要なし。</li>
<li>この順番に実行するコマンドを「シリアルコマンド」という。別に同時に複数のコマンドを実行したいときは［］でコマンドをくくってやる。すると［］でくくられたコマンドが同時に実行する。これを「パラレルコマンド」という。</li>
<li>シーンにどのタイミングでどんなキャストが出てきて、どのタイミングでキャストが去っていくか、何をされたときにシーンが変わるのか、という処理が基本、な気がする。</li>
<li>XMLを読み込んだりできる。</li>
<li>XMLから自動でシーンを作ったりもできる。</li>
<li>new Trace(&#8220;hogehoge&#8221;)でトレース</li>
<li>new Wait(1000)で１秒待ち</li>
<li>new DoTweener(some,{ x:100, transition:&#8221; easeOut &#8220;,time:1 });でsomeをトゥイーン。などなど。</li>
</ul>
<p>んでシーンのメモ。</p>
<ul>
<li>最初のシーンとして「IndexScene」が用意されている。これがサイトのrootとなる。</li>
<li>シーンは通常のHTMLページのように階層を持てる。</li>
<li>それぞれのシーンには「onLoad」、「onInit」、「onGoto」、「onUnload」という状況が用意されている（onDescendとかonAscendもあるが今は無視）。その状況ごとにどのように振る舞うかをコマンドで記述する。</li>
<li>「onLoad」はそのシーン自身に到着、もしくはそのシーンの子階層に到着したとき。</li>
<li>「onInit」そのシーン自身に到着したとき。</li>
<li>「onUnload」はそのシーンから移動（ただし親階層方向への移動、つまり戻る的ニュアンス）したとき。</li>
<li>「onGoto」はそのシーンから移動したとき。</li>
<li>基本的には「onLoad」に登場させるキャストやらを記述する。</li>
<li>「onUnload」に消すキャストやらを記述する</li>
<li>その２つ以外はあんまり使わないって「<a href="http://www.muraken.biz/blog/2009/06/02/case-study-of-progression-vol2/" target="_blank">むらけん</a>」さんが言ってる。</li>
</ul>
<p>キャストのメモ。</p>
<ul>
<li>シーンやキャストは「クラス」という概念で作られている。必要な場合、手作業でテンプレートからコピーして用意するが、スクリプトで作る（複製する）こともできる。</li>
<li>キャストは「ボタン型」「スプライト型」「ムービークリップ型」「ビットマップ型」などよく使うものがテンプレートとして用意されている。</li>
<li>Index.flaにあるライブラリにある要素（ムービークリップなど）をキャストに関連づけてやる（リンケージする）とライブラリの要素を自由に扱える。</li>
<li>テンプレートをコピーしてクラスを用意した場合は、状況に応じてパッケージ名の修正、およびファイル名、クラス名、コンストラクタを共通に修正する。</li>
<li>キャストは登場するシーンのコンストラクタ内でインスタンス化しておき、必要な状況（まぁOnLoad）でnew AddChild(addChildしたいコンテナ,addChildしたいキャスト)する。</li>
<li>ルートとなる表示オブジェクトのコンテナは「progression.container」ぽい。</li>
</ul>
<p>とりあえずそんな感じ。もうちょっとちゃんと分かってきたら解説します。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kiteretsu-so.com/archives/1496/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>てら子に行ってきた！～大阪てら子 22 「webカメラで遊ぼう！」～</title>
		<link>http://www.kiteretsu-so.com/archives/1386</link>
		<comments>http://www.kiteretsu-so.com/archives/1386#comments</comments>
		<pubDate>Mon, 25 May 2009 17:10:01 +0000</pubDate>
		<dc:creator>とんか</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.kiteretsu-so.com/?p=1386</guid>
		<description><![CDATA[大阪てら子に行ってきました。 寺子屋タラコさんではなくFLASHerの勉強会イベントの方です。 大阪てら子は世界のSaqooshaさんをはじめ、 日々俺が読んでるFLASHerブログの主たちがぞろぞろ参加している 魑魅魍 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.a-knot.sakura.ne.jp/works/cameraui/cameraUI.html" target="_blank"><img class="alignnone size-full wp-image-1401" title="cameraui" src="http://www.kiteretsu-so.com/wordpress/wp-content/uploads/2009/05/cameraui2.jpg" alt="cameraui" width="520" height="390" /></a></p>
<p><a href="http://atnd.org/events/664" target="_blank">大阪てら子</a>に行ってきました。<br />
寺子屋タラコさんではなくFLASHerの勉強会イベントの方です。</p>
<p>大阪てら子は世界の<a href="http://saqoosha.net/" target="_blank">Saqoosha</a>さんをはじめ、<br />
日々俺が読んでるFLASHerブログの主たちがぞろぞろ参加している<br />
魑魅魍魎の異世界の雰囲気がぷんぷん漂う勉強会で、<br />
とても一人では行けないと思い悩んでたんですが<br />
<a href="http://www.starryworks.co.jp/" target="_blank">STARRYWORKS</a>のキム兄さん（俺のFlash師匠）が誘ってくれたのでこれ幸いと行ってきました。<br />
<span id="more-1386"></span></p>
<p>今回のテーマが「<strong>webカメラで遊ぼう！</strong>」だったので、新しい「動体検知」作品と<br />
プラスおまけで前の「<a href="http://www.a-knot.sakura.ne.jp/works/chirashinoura.html" target="_blank">ちらしの裏</a>」（未完成だけど）を持っていきました。</p>
<p>で、作品発表してきました。<br />
ずーーーーーっとおなかグルグルゆーてました。</p>
<p>「ちらしの裏」は<a href="http://www.kiteretsu-so.com/archives/651" target="_blank">前の記事</a>を参考にしてもらうとして、新しい動体検知作品の解説を簡単にしておきます。</p>
<p><a href="http://www.a-knot.sakura.ne.jp/works/cameraui/cameraUI.html" target="_blank">http://www.a-knot.sakura.ne.jp/works/cameraui/cameraUI.html</a><br />
要webカメラ。</p>
<p>テーマは「<strong>SF映画に出てくるようなユーザーインターフェイス（UI）をwebカメラの動体検知を使って実現できないかな～」的画像ビューアー</strong>です。</p>
<ul>
<li>使い方：</li>
<li><strong>[最初]：</strong>画面の前で両手を適当に動かしてください。そのうち認識します。</li>
<li><strong>[画像選択画面]：</strong>右ポインターを動かし画像を選び、左ポインターを一番上のエリアに上げると画像が選択されます。</li>
<li><strong>[画像詳細画面]：</strong>画像の右上と左下にポインタを持っていくと画像を持つことができます。多少、傾けたり引き伸ばしたりできます。元の画面に戻るときはポインタを左下、右下に持っていってください。</li>
</ul>
<p>まぁやってみると分かりますが、慣れるまで難しい…。バグ多いし。<br />
適時修正していきます。</p>
<p>webカメラない人用に動画とってみました。こんな感じ。<br />
※「demo」みたいなメッセージは無視したらいいんちゃうかな。</p>
<p><object width="480" height="385" data="http://www.youtube.com/v/MX69gegFR1U&amp;hl=ja&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/MX69gegFR1U&amp;hl=ja&amp;fs=1" /><param name="allowfullscreen" value="true" /></object><br />
<strong><br />
[ちょっとだけ解説]</strong><br />
動体検知のあたりは定番の方法です。<br />
※ちょっと会場の明るさにあわせて感度を変更できるよう<br />
裏で仕込んでます…。</p>
<p>ポインタはwebカメラの左右の情報をコピーしたBitmapDataから<br />
動いている箇所（動体検知で白くなる部分）の矩形を取得し、<br />
その中心の何コマかの平均をとっています。</p>
<p>//急遽追加した閾値変化機能。ボタン押すごとに閾値が変化。動きが悪いときにどうぞ<br />
var shikii_a:Array = new Array(0xff555555,0xff444444,0xff333333,0xff222222,0xff111111);<br />
var shikiiArray_num:uint=0;<br />
stage.addEventListener(KeyboardEvent.KEY_UP,shikiiChange);</p>
<p>function shikiiChange(e:KeyboardEvent){<br />
if(shikiiArray_num<4){<br />
shikiiArray_num++;<br />
}else{<br />
shikiiArray_num = 0;<br />
}<br />
}</p>
<p>function cameraAndPointerCol(e:Event){<br />
if(right_leng_flg ==true &amp;&amp;left_leng_flg==true&amp;&amp;first_flg==false){</p>
<p>//ポインタの平均値がとれるまで待ち状態。とれたら「OK」表示<br />
message_sp.gotoAndPlay("ok");<br />
//そっから画像読み込みスタート<br />
start_func();<br />
first_flg=true;</p>
<p>}<br />
//カメラ映像をドロウ<br />
defaultCamera_bmd.draw(cameraVideo);<br />
//現在のビデオをまずコピー<br />
ugokiCamrera_bmd.copyPixels(defaultCamera_bmd,rect,pt);<br />
//ブレンドモードDIFFERENCEで以前記憶した記録と動いた箇所の差分をチェック<br />
ugokiCamrera_bmd.draw(beforeCamera_bmd, null, null, BlendMode.DIFFERENCE);<br />
//閾値以上を白色に変化（動体検知）<br />
ugokiCamrera_bmd.threshold(ugokiCamrera_bmd, rect, pt, ">&#8220;, shikii_a[shikiiArray_num], 0xffffffff);<br />
//次のブレンド用にビフォーを記録<br />
beforeCamera_bmd.copyPixels(defaultCamera_bmd,rect,pt);<br />
//動体検知の左側をコピー<br />
leftCamera_bmd.copyPixels(ugokiCamrera_bmd,left_rect,pt);<br />
//動体検知の右側をコピー<br />
rightCamera_bmd.copyPixels(ugokiCamrera_bmd,right_rect,pt);</p>
<p>//動体検知の左側の動いている場所を矩形化<br />
leftMove_rect = leftCamera_bmd.getColorBoundsRect(maskColor, icchiColor, true);<br />
//動体検知の左側の動いている場所を矩形化<br />
rightMove_rect = rightCamera_bmd.getColorBoundsRect(maskColor, icchiColor, true);</p>
<p>pointerCal();			//ポインタの位置計算<br />
selectPointSencer();	//ポインタの選択してるもののチェック</p>
<p>}</p>
<p>つかんだときに画像を回転、拡大するのは、この前勉強した三角関数が役に立ちました。趣旨は同じで距離と角度を随時計算しています。</p>
<p>//つかんだ画像の拡大縮小回転計算を初期化<br />
function detailBigImg(){<br />
detaiMode_flag = true;								//つかんでいるモード<br />
WW = 800 * bigImg_sp.scaleX;						//800pxの幅の画像<br />
HH = 470 * bigImg_sp.scaleX;						//470pxの高さの画像<br />
def_dg = (Math.atan( WW / HH)) * 180 / Math.PI;		//その画像の対角線の角度を求める(これがデフォルト角度)<br />
bigImg_sp.y = 0;<br />
bigImg_sp.x = 0;<br />
stage.addEventListener(Event.ENTER_FRAME,detailCal);<br />
}</p>
<p>function detailCal(e:Event){<br />
leftX = leftPointer.x;		//左ポインタx<br />
leftY = leftPointer.y;		//左ポインタy</p>
<p>rightX = rightPointer.x;	//右ポインタx<br />
rightY = rightPointer.y;	//右ポインタy</p>
<p>bigImg_cont.x = rightX;		//画像のx<br />
bigImg_cont.y = rightY;		//画像のy<br />
//三平方の定理で元のサイズと現在のポインタの対角線の長さの比を出して拡大縮小<br />
bigImg_cont.scaleX = bigImg_cont.scaleY = Math.sqrt(Math.pow(rightX-leftX,2) + Math.pow(rightY-leftY,2)) / Math.sqrt(WW * WW+ HH * HH);</p>
<p>//現在のポインタの対角線の角度を求める<br />
var dg:Number = (Math.atan( (rightY &#8211; leftY ) / (rightX &#8211; leftX ))) * 180 / Math.PI;<br />
//そこからデフォルトの角度を差し引いて現在の角度に置き換える<br />
bigImg_cont.rotation = dg -(90 &#8211; def_dg);<br />
}</p>
<p>だいたいこんな感じ。<a href="http://www.a-knot.sakura.ne.jp/works/cameraui/0526_cameraUI.zip">ソースはここ</a>置いときますね。</p>
<p>いやー、はじめてのてら子でホント逃げ出したいぐらい緊張してたんですが<br />
皆さんめーちゃいい人で、<br />
気遣いフォローやら業界アドバイスやらいろいろお話聞かせてもらいました。<br />
とってもいい刺激をもらえたので、<br />
これからもモニョモニョ作っていきたいと思います。<br />
ありがとうございました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kiteretsu-so.com/archives/1386/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>緯度経度より距離を求める方法・備忘録 ｜ 地球は丸い！</title>
		<link>http://www.kiteretsu-so.com/archives/1183</link>
		<comments>http://www.kiteretsu-so.com/archives/1183#comments</comments>
		<pubDate>Thu, 14 May 2009 17:00:41 +0000</pubDate>
		<dc:creator>とんか</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.kiteretsu-so.com/?p=1183</guid>
		<description><![CDATA[今回の春場所サイト「マチコ」携帯サービスにおいて、 携帯GPSで取得した緯度経度を使って ２人の距離を算出する計算を行っています。 でも、緯度経度から距離を算出するってよく分からなかったのでいろいろ調べてたところ、 轍　 [...]]]></description>
			<content:encoded><![CDATA[<p>今回の春場所サイト「<a href="http://machiko.kiteretsu-so.com/" target="_blank">マチコ</a>」携帯サービスにおいて、<br />
携帯GPSで取得した緯度経度を使って<br />
２人の距離を算出する計算を行っています。</p>
<p>でも、緯度経度から距離を算出するってよく分からなかったのでいろいろ調べてたところ、</p>
<p><a href="http://wadati.blog10.fc2.com/blog-entry-345.html" target="_blank">轍　〜自転車的なる日記〜  緯度・経度から距離を求める方法</a></p>
<p>なるサイト様の情報が簡易でかつ実用的っぽいので<br />
この式で計算してみることにしました。</p>
<p>ただ、自分的にちょっと理解が追いつかなかったので<br />
備忘録として行程を一個いっこ追いながら、phpおよびas3にまで落とし込むまでを記しておきます。<br />
<span id="more-1183"></span></p>
<p>※取得した緯度経度が「度分秒の60進法」の場合、「10進法」にあらかじめ直してください。直し方は以下リンク参照<br />
　<a href="http://blog.fkoji.com/2005/09210026.html" target="_blank">経度・緯度を60進法から10進法へ変換 &#8211; F.Ko-Jiの「一秒後は未来」</a></p>
<p>では始めます。</p>
<p><img src="http://www.kiteretsu-so.com/wordpress/wp-content/uploads/2009/05/idokeido01.jpg" alt="idokeido01" title="idokeido01" width="521" height="400" class="alignnone size-full wp-image-1188" /></p>
<p>A点、大阪（緯度 = aIdoとします：34.701909, 経度 = aKeidoとします：135.494977）と<br />
B点、東京（緯度 = bIdoとします：35.681382, 経度 = bKeidoとします：139.766084）の<br />
２点間の距離（dとします・単位km）を求めます。</p>
<p>距離を求める場合は、東京と大阪を結ぶ線を引いて、<strong>その線の長さが分かればよいのです</strong>。</p>
<p>その線の長さを求めるために、<br />
大阪と東京の東西の距離差と南北の距離差が分かれば<br />
ピタゴラスの定理<br />
<strong>xの2乗 + yの2乗 = 求める距離の2乗</strong><br />
により距離が計算できます！</p>
<p>ではどうやって東西の距離（touzaiKyoriとします）、南北の距離（nanbokuKyoriとします）を求めればよいのか。</p>
<p>その前に緯度経度って概念がごっちゃになりやすいので簡単に緯度経度についてのおさらいです。</p>
<p><strong>●緯度（横ライン）</strong>：<br />
赤道が緯度0度、北極が90度、南極が-90度とする<br />
<strong>「地球の中心（核）」を起点とした角度。</strong><br />
世界地図（メルカトル図法時）では水平方向に線が引かれます。<br />
当然、赤道で一番円周が大きくなり（つまり地球の直径）<br />
赤道から距離が離れるたびに緯度ラインの直径は小さくなっていきます。</p>
<p><strong>●経度（縦ライン）</strong>：<br />
ロンドンのグリニッジ天文台を通る大円が経度0度<br />
（大円：ある地点と北極と南極を通る大きな円）<br />
<strong>「地球の地軸」を起点とした角度</strong>。<br />
世界地図（メルカトル図法時）では垂直方向に線が引かれます。<br />
円周は常に同じです（常に地球の直径）。<br />
<strong><br />
ポイント<br />
・緯度は場所によって円周の長さ、半径が違う！※経度は常に円周の長さ常には同じ。<br />
・緯度経度は座標のxyだと思うとこんがらがるので、あくまで地球の基準点からの角度と考える！<br />
</strong></p>
<p>地球は丸いので東京と大阪の東西の距離、南北の距離は<br />
<strong>地球の円周上</strong>にそっています。<br />
よって円弧の長さを求めることになります。</p>
<p>●円弧の長さの求め方<br />
小学校で習った式は<br />
円弧の長さ =直径×π×円弧の角度／360<br />
だったと思いますが、もっと簡単にする方法があります。<br />
ラジアンという角度の単位を使う方法です。<br />
<strong>円弧の長さ = 半径×円弧の角度をラジアンに変換した値</strong></p>
<p>一般的な角度をラジアンという角度に変換するには<br />
1度 = π / 180 = 約0.017ラジアン<br />
1ラジアン = 180 / π = 約52.3度<br />
で計算すればよいです。<br />
※phpならわざわざ計算しなくても角度をラジアンに変換する関数があります。</p>
<p>ちなみにラジアンとは：<br />
・角度の単位。<br />
・1ラジアン (約57度)のとき半径と弧の長さが等しい。<br />
・360度 = 2πラジアン<br />
・弧の長さを計算するのにめっちゃ分かりやすい。</p>
<p>では東西の距離（touzaiKyori）、南北の距離（nanbokuKyori）を求めてみます。<br />
計算には円弧の角度の他に地球の半径が必要となるので<a href="http://ja.wikipedia.org/wiki/%E5%9C%B0%E7%90%83" target="_blank">wikipedia</a>で地球の半径を調べてみました。<br />
●地球の半径（earth_rとします ）：約6378.137km</p>
<p>●で、緯度経度にそった円弧の角度<br />
大阪東京の緯度の差（idoSaとします）：   bIdo &#8211; aIdo<br />
大阪東京の経度の差（keidoSaとします）：   bKeido &#8211; aKeido</p>
<p>この緯度の角度差、経度の角度差をラジアンに変換した値と地球の半径を利用して<br />
円弧の長さを求めます。</p>
<p><img src="http://www.kiteretsu-so.com/wordpress/wp-content/uploads/2009/05/idokeido02.jpg" alt="idokeido02" title="idokeido02" width="520" height="400" class="alignnone size-full wp-image-1195" /></p>
<p>ただし、南北の距離を計算するための半径は、すなわち地球の半径ですが、<br />
東西方向の距離を計算するための半径は、<strong>測定値の緯度により、異なります。</strong><br />
（日本は赤道ラインよりずいぶん上に位置していますので<br />
その緯度の半径は赤道の半径より当然小さくなります）</p>
<p><img src="http://www.kiteretsu-so.com/wordpress/wp-content/uploads/2009/05/idokeido03.jpg" alt="idokeido03" title="idokeido03" width="520" height="280" class="alignnone size-full wp-image-1196" /></p>
<p>測定位置の緯度ラインの半径は<strong>三角関数の計算</strong>により求められます。<br />
<strong>直角三角形は角度が一定であれば3辺の長さの比も一定</strong>という性質を利用します。</p>
<p>コサインθとは比率に基づく値にすぎません。<br />
三角形の角度がθ（ここではすなわちaIdo）度のときの<br />
底辺（ここでいう測定地の緯度の半径） ÷ 斜辺（ここでいう地球の中心から測定値の距離） の値のことです。<br />
斜辺（地球の中心から測定値の距離） = 地球の半径（earth_r）なので<br />
<strong>底辺（測定地の緯度の半径）= cosθ × earth_r </strong><br />
となります。<br />
※phpやactionscriptだとコサインを計算してくれる関数があります。<br />
ただし<strong>求めたい角度θの単位を一度ラジアンに変換する必要があります</strong>。</p>
<p>これで式が揃いました。</p>
<p><strong>東西の距離（touzaiKyori）</strong>=  測定値（大阪）の緯度の半径 ×  大阪東京の緯度の差（idoSa）<br />
 = コサインaIdo ×  地球の半径（earth_r）× 大阪東京の緯度の差（idoSa）</p>
<p><strong>南北の距離（nanbokuKyori）</strong>=  地球の半径（earth_r） ×  大阪東京の経度の差（keidoSa）</p>
<p>この二つが求まれば<br />
xの2乗 + yの2乗 = 求める距離の2乗<br />
となり、その平方根をもとめることで<strong>距離dが求まります</strong>。</p>
<p>よってPHPで書くと以下の通り</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$aIdo = 34.701909;					//  A点（大阪）の緯度
$aKeido = 135.4949770;		 //  A点（大阪）の経度

$bIdo = 35.681382;				//  B点（東京）の緯度
$bKeido = 139.766084;		//  B点（東京）の経度

$earth_r = 6378.137;		//	地球の半径

$idoSa = deg2rad($bIdo - $aIdo);	//緯度差をラジアンに
$keidoSa = deg2rad($bKeido - $aKeido);	//経度差をラジアンに

$nanbokuKyori =  $earth_r * $idoSa;		//南北の距離
$touzaiKyori = cos(deg2rad($aIdo)) * $earth_r * $keidoSa;		//東西の距離

$d = sqrt(pow($touzaiKyori,2) + pow( $nanbokuKyori,2));			//三平方の定理でdを求める
?&gt;
</pre>
<p>またactionscript3.0で書くと</p>
<p>var aIdo:Number = 34.701909;					//  A点（大阪）の緯度<br />
var aKeido:Number = 135.4949770;		 //  A点（大阪）の経度</p>
<p>var bIdo:Number = 35.681382;				//  B点（東京）の緯度<br />
var bKeido:Number = 139.766084;		//  B点（東京）の経度</p>
<p>const earth_r:Number = 6378.137;		//	地球の半径</p>
<p>var idoSa:Number =  Math.PI / 180 * (bIdo &#8211; aIdo);	//緯度差をラジアンに<br />
var keidoSa:Number = Math.PI / 180 * (bKeido &#8211; aKeido);		//経度差をラジアンに</p>
<p>var nanbokuKyori:Number = earth_r * idoSa;		//南北の距離<br />
var touzaiKyori:Number = Math.cos( Math.PI / 180 * aIdo) * earth_r * keidoSa;		//東西の距離</p>
<p>var d:Number = Math.sqrt(Math.pow(touzaiKyori,2) + Math.pow(nanbokuKyori,2));		//三平方の定理でdを求める</p>
<p>となります。<br />
ちなみに求められる値dは405.807810663 kmとなります。<br />
検証のために以下のサイトで大阪駅東京駅間を測ってみましたが、ほぼほぼ同じ値でした。<br />
<a href="http://lab.uribou.net/ll2dist/" target="_blank">LatLng2Distance:::緯度経度から距離算出API:</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kiteretsu-so.com/archives/1183/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

