<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-37825856</id><updated>2011-04-22T06:39:48.556+09:00</updated><category term='Text'/><category term='ActionScript'/><category term='on'/><category term='mouse'/><category term='Severside'/><category term='FlashLite'/><category term='FlashIDE'/><category term='Sound'/><category term='bitmap'/><category term='function'/><category term='HTML'/><title type='text'>Think About it</title><subtitle type='html'>&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.mrlittlebig.com/"&gt;Home&lt;/a&gt; &gt; Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mrlittlebig.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-37825856.post-9111250451084728979</id><published>2008-03-11T17:00:00.001+09:00</published><updated>2008-03-11T17:02:14.899+09:00</updated><title type='text'>引越し</title><content type='html'>少し趣向を変えて、こちらに引っ越しました。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mrlittlebig.com/blog/"&gt;http://www.mrlittlebig.com/blog/ - trace&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Flashのみではなく雑談も増えましたが、&lt;br /&gt;引き続き、よろしくお願いします。&lt;br /&gt;&lt;br /&gt;USK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-9111250451084728979?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/9111250451084728979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/9111250451084728979'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/03/blog-post.html' title='引越し'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-2284998435541562242</id><published>2008-02-27T13:15:00.005+09:00</published><updated>2008-02-27T20:14:04.745+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FlashLite'/><title type='text'>Flash Lite1.1</title><content type='html'>取り急ぎのメモ。&lt;br /&gt;&lt;br /&gt;Flash Lite1.1における階層のパスの取り方がかなり違う。&lt;br /&gt;&lt;br /&gt;PC用のASだと、たとえば、MovieClip A_mcから、同じタイムライン上にある、&lt;br /&gt;B_mcを参照したいとすると、&lt;br /&gt;_parent.B_mc&lt;br /&gt;で、事足りる。&lt;br /&gt;&lt;br /&gt;しかし、Flash Liteだと、.(ドットシンタックス)が使えない。&lt;br /&gt;代わりに、/(スラッシュ)を使用する。&lt;br /&gt;ディレクトリのパスの参照と似ている。&lt;br /&gt;&lt;br /&gt;これで上記のパスを書き直すと、&lt;br /&gt;../B_mc&lt;br /&gt;と、なる。&lt;br /&gt;../が_parentの代わり。&lt;br /&gt;ちなみに、_rootは、頭に/のみで書く。&lt;br /&gt;間を繋ぐ.(ドット)は、/で書く。&lt;br /&gt;&lt;br /&gt;さらに、上記の用に、../B_mcと書くと、B_mcはムービークリップに限定される。&lt;br /&gt;変数を参照した場合はどうすればいいかというと、&lt;br /&gt;../:bNum&lt;br /&gt;のように、/のあとに、:(コロン)をつける。これで、一階層上のbNumという変数にアクセスした事になる。&lt;br /&gt;&lt;br /&gt;ケータイFlash　ラボ!!  - &lt;a href="http://mobilef.jugem.jp/?cid=4" target="_blank"&gt;http://mobilef.jugem.jp/?cid=4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;あと、違ったのが、onEnterFrameがない。&lt;br /&gt;&lt;br /&gt;これは、タイムラインを二つ使って、入ったりきたりさせることで解決。&lt;br /&gt;&lt;br /&gt;教えて！goo - &lt;a href="http://oshiete1.goo.ne.jp/qa2125328.html" target="_blank"&gt;Flash Lite1.1ではonClipEvent(enterFrame)が使えません。ではどうすれば？&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;それと、functionがない。&lt;br /&gt;&lt;br /&gt;これは、再生されないタイムラインのヘッド上に、参照したいスクリプトを書き、&lt;br /&gt;そのヘッドにフレーム名、たとえば、testとつける。&lt;br /&gt;そして、そのスクリプトを呼び出すには、call()を使う。&lt;br /&gt;call("test");&lt;br /&gt;のようにしてやれば、testと、ラベルのつけられたフレームのスクリプトを、&lt;br /&gt;そのフレームにいかずに実行してくれます。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;あと、もう一つ。&lt;br /&gt;onEnterFrame()がない、ということなので、&lt;br /&gt;たぶん、onClipEvent()もない。&lt;br /&gt;（たぶん、on()しかない）&lt;br /&gt;なので、onClipEvent(load)として、ロードした時になにかの処理をさせてやれない。&lt;br /&gt;そうするにはタイムラインから書くしかない。&lt;br /&gt;&lt;br /&gt;そこで登場するのが、tellTarget()。&lt;br /&gt;これを使うと、指定されたムービークリップにスクリプトがかかれたことと同じになる。&lt;br /&gt;たとえば、test_mcというムービークリップがあったとして、&lt;br /&gt;そいつにスクリプトを適用させるには、&lt;br /&gt;tellTarget(test_mc){ 実行させたい処理 }&lt;br /&gt;と、書いてやるとよい。&lt;br /&gt;※処理の中かからメインのタイムラインを参照したい時は、一階層上なので、../としないといけない。&lt;br /&gt;&lt;br /&gt;これで、実行させたいムービークリップがあるタイムライン上に、&lt;br /&gt;処理を書いてやれば、onClipEvent(load)と同じ効果が得られる（はず）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;参考：Adobe デベロッパーセンター - &lt;a href="http://www.adobe.com/jp/devnet/devices/articles/togoru.html" target="_blank"&gt;iモード用 Flash 開発講座&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;==追記==（疑問）&lt;br /&gt;gotoAndStop、gotoAndPlayなどは、ムービークリップ内に書いていても、&lt;br /&gt;tellTarget内に書いていても、メインのタイムラインが参照される？&lt;br /&gt;（分けたい時はシーンで分ける？）&lt;br /&gt;gotoAndStop("label");のように、ラベル名で指定すると、&lt;br /&gt;ルートのタイムライン上のものはきちんと動作するけど、&lt;br /&gt;ムービークリップ内など、ルートのタイムライン上以外のものは動かない。&lt;br /&gt;Flash Lite1.1では、直接フレーム数で指定する方が無難。&lt;br /&gt;（マニュアルにもラベル指定は書かれていない。&lt;br /&gt;Flash Lite2以降の説明には書かれている。）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-2284998435541562242?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2284998435541562242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2284998435541562242'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/02/flash-lite11.html' title='Flash Lite1.1'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-2637301522047910083</id><published>2008-01-25T17:58:00.001+09:00</published><updated>2008-01-25T19:20:01.627+09:00</updated><title type='text'>Flash + HTML(2)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;HTML側からFlashに変数を渡す場合、&lt;br /&gt;&lt;a href="http://mrlittlebig.blogspot.com/2007/11/flash-html.html"&gt;以前に書いたように&lt;/a&gt;、&lt;br /&gt;swfを読み込んでいる部分に&amp;をつけることで簡単に処理できます。&lt;br /&gt;&lt;br /&gt;それと似たような処理で、表示しているHTMLのURLから変数を渡してみます。&lt;br /&gt;（javaScriptがメインとなります）&lt;br /&gt;&lt;br /&gt;考え方としてはswfのURLに直接変数を書き込む方法と同じで、&lt;br /&gt;HTMLのURLの末尾に変数を付加し、&lt;br /&gt;それをJavaScriptで読み込み、&lt;br /&gt;それをswfに渡す、という方法になります。&lt;br /&gt;&lt;br /&gt;具体例。&lt;br /&gt;&lt;br /&gt;swfを読み込む側のHTMLに以下のJavaScriptを記述。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;var str = location.search;&lt;br /&gt;str = str.substring(1,str.length);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;このページへのリンクを以下のように記述。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;&amp;lt;a href=&amp;quot;xxxx.html?1&amp;quot;&amp;gt;Link&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これで、読み込み側のHTMLの変数、strに、「1」が入ります。&lt;br /&gt;※location.searchで、URLの?からを取得できます。&lt;br /&gt;この例では、「?1」となります。&lt;br /&gt;なのでそこから1だけを、substringで取り出しています。&lt;br /&gt;&lt;br /&gt;あとは、この変数をswfに入れてやるだけです。&lt;br /&gt;&lt;br /&gt;これは、swfを読み込んでいる部分をJavaScriptで吐き出すように書いてやり、&lt;br /&gt;swfのURLの後ろに、&amp;=strといれてやるだけです。&lt;br /&gt;&lt;br /&gt;・param&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;document.write('&amp;lt;param name=&amp;quot;movie&amp;quot;&lt;br /&gt;    value=&amp;quot;xxxx.swf?flag='+str+'&amp;quot;&amp;gt;\n');&lt;/pre&gt;&lt;br /&gt;・embed&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;document.write('&amp;lt;embed src=&amp;quot;top.swf?flag='+str+'&amp;quot; quality=&amp;quot;high&amp;quot;&lt;br /&gt;  bgcolor=&amp;quot;#ffffff&amp;quot;  width=&amp;quot;750&amp;quot; height=&amp;quot;214&amp;quot;&lt;br /&gt;  align=&amp;quot;&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;  pluginspage=&amp;quot;http://www.macromedia.com/go/getflashplayer&amp;quot;&amp;gt;\n');&lt;/pre&gt;&lt;br /&gt;※swfのURLを読み込むところのみ記述。&lt;br /&gt;どっちも一行です。&lt;br /&gt;&lt;br /&gt;これを、FlashVarsを用いて、変数を渡してやることもできます。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;document.write(&amp;quot;&amp;lt;param name=\&amp;quot;FlashVars\&amp;quot; value=\&amp;quot;flag=&amp;quot;+str+&amp;quot;\&amp;quot; /&amp;gt;&amp;quot;);&lt;/pre&gt;&lt;br /&gt;・embedは割愛。&lt;br /&gt;&lt;br /&gt;さらに、これをswfObjectを使用するとさらに簡単になります。&lt;br /&gt;記述部分に、以下のパラメータを足してやるだけです。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;so.addVariable("flag", str);&lt;/pre&gt;&lt;br /&gt;詳しくはこちら。&lt;br /&gt;&lt;br /&gt;FLASH-JP.COM フォーラム - &lt;a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=6129&amp;forum=6" target="_blank"&gt;リンクされたURLの引数を変数として受け取る。&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考：&lt;br /&gt;A LOT - &lt;a href="http://www.org44.com/blog/2005/0822_1502_index.php" target="_blank"&gt;JavaScriptで変数受け取りの巻&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-2637301522047910083?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2637301522047910083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2637301522047910083'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/01/flash-html2.html' title='Flash + HTML(2)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-5707391117670229452</id><published>2008-01-15T17:39:00.000+09:00</published><updated>2008-01-15T18:06:40.965+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><title type='text'>function(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;ボタン等の処理をフレームアクションで書く場合。&lt;br /&gt;&lt;br /&gt;今まではそのまま書いてました。&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;押したボタンの番号を表示させる。&lt;br /&gt;&lt;br /&gt;表示させる部分の関数は以下。（この部分は後ほども使い回します）&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function testTxt(num){&lt;br /&gt; test_txt.text = num;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;本体は以下。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;btn0.onPress = function(){ testTxt(0);}&lt;br /&gt;btn1.onPress = function(){ testTxt(1);}&lt;br /&gt;btn2.onPress = function(){ testTxt(2);}&lt;br /&gt;btn3.onPress = function(){ testTxt(3);}&lt;br /&gt;btn4.onPress = function(){ testTxt(4);}&lt;br /&gt;btn5.onPress = function(){ testTxt(5);}&lt;br /&gt;btn6.onPress = function(){ testTxt(6);}&lt;br /&gt;btn7.onPress = function(){ testTxt(7);}&lt;br /&gt;btn8.onPress = function(){ testTxt(8);}&lt;br /&gt;btn9.onPress = function(){ testTxt(9);}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0801/080115_01.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;こんな感じで、列記していました。&lt;br /&gt;&lt;br /&gt;これをもうちょっとスマートに、まとめて書けないものかと。&lt;br /&gt;（これだと、増やしたり減らしたりするのにめんどう）&lt;br /&gt;&lt;br /&gt;で、for文で単純に回してみました。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function setBtn(){&lt;br /&gt; for( i = 0; i &lt; 10; i++){&lt;br /&gt;  this["btn"+i].onPress = function(){ testTxt(i);}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;setBtn();&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0801/080115_02.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;で、結果を見ていただければわかる通り、おかしい、です。&lt;br /&gt;どのボタンを押しても、「１０」が表示されます。&lt;br /&gt;&lt;br /&gt;色々試してみた結果、どうやら以下のようです（あくまで推測です）。&lt;br /&gt;一度for文が回り終わってから、ボタンを押すことになります。&lt;br /&gt;なので、ボタンが押されたときには、関数に渡しているiの値は、&lt;br /&gt;for文が回ってからの値、すなわち、10（i=10になったら抜けるようになっているので）となり、&lt;br /&gt;常に10が関数に渡されている、という事のようです。&lt;br /&gt;&lt;br /&gt;なら、これはどうでしょうか。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function setBtn(){&lt;br /&gt; for( i = 0; i &lt; 10; i++){&lt;br /&gt;  this["btn"+i].onPress = function(){ mc_txt.text = this;}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;setBtn();&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0801/080115_03.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;これでは、押されたボタンのインスタンス名（レベルも含まれてます）が、表示されるようにしています。&lt;br /&gt;これだと、for文で回しているにも関わらず、きちんと表示されています。&lt;br /&gt;&lt;br /&gt;これは、先ほどの推測の通り、iを参照すると、for文が回ってしまった後のためおかしくなりますが、&lt;br /&gt;thisだと、不変なため、正しく表示できているようです。&lt;br /&gt;&lt;br /&gt;このことから、少しややこしい事をしている気もしますが、&lt;br /&gt;以下のようにしてみます。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function setNum(mc){&lt;br /&gt; var mcLength:Number = mc._name.length;&lt;br /&gt; var mcNum:Number = mc._name.charAt(mcLength - 1);&lt;br /&gt; testTxt(mcNum);&lt;br /&gt;}&lt;br /&gt;function setBtn(){&lt;br /&gt; for( i = 0; i &lt; 10; i++){&lt;br /&gt;  this["btn"+i].onPress = function(){ setNum(this);}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;setBtn();&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0801/080115_04.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;これは、インスタンス名は正しく取得できているところから、&lt;br /&gt;そのインスタンス名の一番最後の文字から、ボタンの番号を抜き出してき、&lt;br /&gt;それを関数に与えている、ということをしています。&lt;br /&gt;これでとりあえず上手くいきました。&lt;br /&gt;&lt;br /&gt;こうしてfor文で回すことによって、管理がしやすくなります。&lt;br /&gt;以下のようにボタンを減らすことも容易です。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;&lt;b&gt;var max:Number = 5;&lt;/b&gt;&lt;br /&gt;function setNum(mc){&lt;br /&gt; var mcLength:Number = mc._name.length;&lt;br /&gt; var mcNum:Number = mc._name.charAt(mcLength - 1);&lt;br /&gt; testTxt(mcNum);&lt;br /&gt;}&lt;br /&gt;function setBtn(){&lt;br /&gt; for( i = 0; &lt;b&gt;i &lt; max+1&lt;/b&gt;; i++){&lt;br /&gt;  this["btn"+i].onPress = function(){ setNum(this);}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;setBtn();&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0801/080115_05.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;ただし、付け焼刃的な対処のため、問題があります。&lt;br /&gt;&lt;br /&gt;・ボタンのインスタンス名は、最後に連番となる数字をつけなければならない。&lt;br /&gt;（今回のサンプルの場合だと、btn0 ～ btn9、となっています）&lt;br /&gt;・数字は一桁までしか対応していない。&lt;br /&gt;（10以上ボタンがある場合は対応できていません。少し改造すれば出来るようになるはずです。）&lt;br /&gt;&lt;br /&gt;その他、諸所問題あると思います。&lt;br /&gt;&lt;br /&gt;もっと簡単に出来るような気もしているんですけど、、、。&lt;br /&gt;クラスとか使えば出来るんでしょうか。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-5707391117670229452?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/5707391117670229452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/5707391117670229452'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/01/function1.html' title='function(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-6347743159128646831</id><published>2008-01-08T19:56:00.000+09:00</published><updated>2008-01-08T20:15:20.651+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FlashIDE'/><title type='text'>リンケージ設定</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;Flash IDE上において、ステージにライブラリにあるシンボル等をスクリプトで配置する場合、&lt;br /&gt;あらかじめ、そのシンボルにリンケージ設定をしてやる必要があります。&lt;br /&gt;&lt;br /&gt;方法は、ライブラリ上にあるシンボルを右クリックして、&lt;br /&gt;リンケージプロパティを開き、ActionScriptに書き出し、にチェックを入れてやり、&lt;br /&gt;識別子の名前をつけてやるだけです。&lt;br /&gt;&lt;br /&gt;ただし、ここで気をつけなければならないのが、&lt;br /&gt;リンケージ設定では、デフォルトで、&lt;br /&gt;「最初のフレームに書き出し」&lt;br /&gt;にチェックが入っているところです。&lt;br /&gt;&lt;br /&gt;小規模なフラッシュや、スクリプトで書き出すシンボル等が少しなのであれば、&lt;br /&gt;特に気にする必要はないのですが、&lt;br /&gt;多くのシンボル、サウンドをこの方法で書き出すとなると注意が必要です。&lt;br /&gt;&lt;br /&gt;というのも、swfのファイルサイズが大きくなると、必然的にローディングバー等のローディング処理が必要になります。&lt;br /&gt;ですが、スクリプトで最初のフレームに書き出し処理をさせていると、&lt;br /&gt;この&lt;b&gt;ローディングバー自体をロードする前に&lt;/b&gt;、これらのシンボルやサウンドの読み込み処理を開始してしまいますので、&lt;br /&gt;ローディングバーが表示された段階では、すでに全体の何パーセントかが読み込まれてしまっていますので、&lt;br /&gt;途中からのローディング処理に見えてしまうわけです。&lt;br /&gt;（ローディングバーが表示されるまでは何も起こってないように見える）&lt;br /&gt;&lt;br /&gt;では、どうすればいいのか、といいますと、&lt;br /&gt;ローディングバーを１フレーム目に置いているのであれば、それ以降（２フレーム目以降）に書き出すようにしてやる必要があります。&lt;br /&gt;&lt;br /&gt;まず、リンケージプロパティで、「最初のフレームに書き出し」のチェックをはずしてやります。&lt;br /&gt;しかし、何フレーム目に書き出すかの設定はそのプロパティ内にはありません。&lt;br /&gt;これは、設定で書くのではなくて、実際に書き出したいフレームのステージ上に、&lt;br /&gt;そのシンボルを配置してしまえばいいのです。&lt;br /&gt;こうすることによって、その配置したフレームに書き出しが行われます。&lt;br /&gt;（当然、スクリプトで読み込み処理を行っているフレームよりも後ろに書き出してはいけません）&lt;br /&gt;シンボルの場合はこれで完了ですが、サウンドの場合はそのフレームに来た時に、&lt;br /&gt;誤って鳴ってしまわないように、フレームのプロパティの「同期」を、「停止」にしておきましょう。&lt;br /&gt;&lt;br /&gt;参考サイト - &lt;br /&gt;Macromedia Flash非公式テクニカルノート - &lt;a href="http://www.fumiononaka.com/TechNotes/Flash/FN0501001.html"&gt;コンポーネントとActionScript 2.0クラスの書出しフレームを変更する&lt;/a&gt;&lt;br /&gt;教えて！goo - &lt;a href="http://oshiete1.goo.ne.jp/kotaeru.php3?q=1505484" target="_blank"&gt;しばらく真っ白な画面になってしまいます。&lt;/a&gt;&lt;br /&gt;Flash CS3 ドキュメンテーション - &lt;a href="http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00000860.html"&gt;ステージへのムービークリップシンボルの割り当て&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-6347743159128646831?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/6347743159128646831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/6347743159128646831'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/01/blog-post.html' title='リンケージ設定'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-3705591002332382066</id><published>2008-01-08T19:07:00.000+09:00</published><updated>2008-01-08T19:52:36.934+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Severside'/><title type='text'>CrossDomain(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;フラッシュで、異なるドメイン間の通信を行う場合、&lt;br /&gt;クロスドメンの処理が必要になります。&lt;br /&gt;&lt;br /&gt;Macromedia-デベロッパセンター - &lt;a href="http://www.adobe.com/jp/devnet/flash/articles/fplayer_security_03.html" traget="_blank"&gt;Macromedia Flash Player 7 におけるセキュリティの変更について&lt;/a&gt;&lt;br /&gt;（中段くらいにある、「ポリシーファイルの基本」を参照）&lt;br /&gt;Macromedia Flash非公式テクニカルノート - &lt;a href="http://www.fumiononaka.com/TechNotes/Flash/FN0210002.html" target="_blank"&gt;MovieClip.loadVariables&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;要するに、通信される側のサーバの最上層に、crossdomain.xml を設置する必要がある、とのことです。&lt;br /&gt;&lt;br /&gt;実際にcrossdomain.xmlの中身は以下のようなもの。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;   "http://www.macromedia.com/xml/dtds/&lt;br /&gt;        cross-domain-policy.dtd"&gt;&lt;br /&gt;&amp;lt;!-- Policy file for http://www.mysite.com --&gt;&lt;br /&gt;&amp;lt;cross-domain-policy&gt;&lt;br /&gt;   &amp;lt;allow-access-from domain="*.mysite.com" /&gt;&lt;br /&gt;   &amp;lt;allow-access-from domain="www.myothersite.com" /&gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;このようなファイルが置いてあるサーバであれば、他のサーバからアクセスが出来るようになります。&lt;br /&gt;&lt;br /&gt;※ただし、このファイルを設置することにより、セキュリティ上の問題が発生することがあるようです。&lt;br /&gt;gihyo.jp - &lt;a href="http://gihyo.jp/dev/serial/01/web20sec/0004?page=2" target="_blank"&gt;ここが危ない！Web2.0のセキュリティ 第4回　Flash，JSONでのクロスドメインアクセス&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;このことを意識するのは、ほとんどの場合、APIなどの他社のサービスを使うときだと思います。&lt;br /&gt;&lt;br /&gt;以前、とあるサイトのブログパーツを作ったときに、&lt;br /&gt;先方のサーバにこのポリシーファイルを設置しなければならないのかと危惧しましたが、&lt;br /&gt;結果的に必要ありませんでした。&lt;br /&gt;その時の構成は、貼ってもらうブログには、指定のjavascriptを貼ってもらい、&lt;br /&gt;そこからswfを読み込み、そのswf内から、データ通信を行うものでした。&lt;br /&gt;なので、swfが置いてあるドメインと、データ通信を行うドメインは、同じ、ということで、&lt;br /&gt;クロスドメインの問題は起こらなかった、という感じでした。&lt;br /&gt;（たとえHTMLに貼っていても、swfから見た階層、となるようです）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FlickrのAPIを使用して、プライベートでコンテンツを作成した時に、&lt;br /&gt;この問題に行き当たりました。&lt;br /&gt;&lt;br /&gt;Flickrにはcrossdomain.xmlは設置されています。&lt;br /&gt;http://api.flickr.com/crossdomain.xml&lt;br /&gt;&lt;br /&gt;ただし、ここで注意しなければいけないのが、&lt;br /&gt;&lt;b&gt;api.flickr.com&lt;/b&gt;&lt;br /&gt;にはあるのであって、&lt;br /&gt;&lt;b&gt;www.flickr.com&lt;/b&gt;&lt;br /&gt;にはcrossdomainファイルはない、ということです。&lt;br /&gt;（セキュリティ上の問題かと思います。）&lt;br /&gt;&lt;br /&gt;なので、flickrのAPIからデータを読み込む時には、このドメインに合わせないといけない、という事です。&lt;br /&gt;ここで上手いこといかなくて、かなり悩みました、、。&lt;br /&gt;（この両者のドメインによるデータ等の違いは、、わかりません）&lt;br /&gt;&lt;br /&gt;どうしても、www.flickr.comを使いたい（アップロードさせる、など）などの、&lt;br /&gt;crossdomain.xmlが設置されていないAPIなどのサービスをFlashで使用したい場合は、&lt;br /&gt;間にPHPなどのプログラムを挟むことによって解決できるようです。&lt;br /&gt;DEV.CONVEXSTYLE.NET - &lt;a href="http://dev.convexstyle.net/2006/08/flickr_rss_crossdomain.html" taget="_blank"&gt;Flickr の新着 RSS 読み込み時の crossdomain 問題回避方法&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PHPも要勉強、です。&lt;br /&gt;&lt;br /&gt;Flickr APIを利用して作成した自作コンテンツにもリンクを貼っておきます。&lt;br /&gt;Mr.littleBIG - &lt;a href="http://www.mrlittlebig.com/newyearcard/" target="_blank"&gt;年賀状ジェネレータ&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-3705591002332382066?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/3705591002332382066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/3705591002332382066'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/01/crossdomain1.html' title='CrossDomain(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-9173784927698564466</id><published>2008-01-07T18:51:00.000+09:00</published><updated>2008-01-08T20:21:36.786+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Text'/><title type='text'>TextField(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;TextFieldについて。&lt;br /&gt;&lt;br /&gt;入力テキストフィールドで入力された数字をそのまま足してしまうと、&lt;br /&gt;数字として認識されず、文字列として認識されてしまいます。&lt;br /&gt;&lt;br /&gt;なので、その場合は一度、数字に変換してやってから、&lt;br /&gt;足すなどの計算をしてやる必要があります。&lt;br /&gt;&lt;br /&gt;例)&lt;br /&gt;1.数字に変換をしなかった場合。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0712/071204_0.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;2.数字への変換を行った場合。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0712/071204_1.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;ソース&lt;br /&gt;1.数字に変換をしなかった場合&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;a_txt.maxChars = 1;&lt;br /&gt;b_txt.maxChars = 2;&lt;br /&gt;&lt;br /&gt;a_txt.restrict = "1-9";&lt;br /&gt;b_txt.restrict = "0-9";&lt;br /&gt;&lt;br /&gt;function calculation(){&lt;br /&gt; &lt;b&gt;a = a_txt.text;&lt;/b&gt;&lt;br /&gt; &lt;b&gt;b = b_txt.text;&lt;/b&gt;&lt;br /&gt; var sum:Number = a+b;&lt;br /&gt; sum_txt.text = sum;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sum_btn.onPress = function(){&lt;br /&gt; calculation();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.数字への変換を行った場合&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;a_txt.maxChars = 1;&lt;br /&gt;b_txt.maxChars = 2;&lt;br /&gt;&lt;br /&gt;a_txt.restrict = "1-9";&lt;br /&gt;b_txt.restrict = "0-9";&lt;br /&gt;&lt;br /&gt;function calculation(){&lt;br /&gt; &lt;b&gt;var a:Number = Number(a_txt.text);&lt;/b&gt;&lt;br /&gt; &lt;b&gt;var b:Number = Number(b_txt.text);&lt;/b&gt;&lt;br /&gt; var sum:Number = a+b;&lt;br /&gt; sum_txt.text = sum;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sum_btn.onPress = function(){&lt;br /&gt; calculation();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;変更している箇所は太字の部分のみ、です。&lt;br /&gt;&lt;br /&gt;ようするに、数字であれば、&lt;br /&gt;Number(～)&lt;br /&gt;で、数字に変換できる、というわけです。&lt;br /&gt;&lt;br /&gt;教えて!goo - &lt;a href="http://oshiete1.goo.ne.jp/qa2975080.html" target="_blank"&gt;アクションスクリプトで、足し算、引き算をするには？&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ちなみに、この例では、数字のみを、入力、&lt;br /&gt;更に、左の入力ボックスでは1桁、右では2桁、のみの入力しかできないようにしています。&lt;br /&gt;&lt;br /&gt;この箇所です。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;a_txt.maxChars = 1;&lt;br /&gt;b_txt.maxChars = 2;&lt;br /&gt;&lt;br /&gt;a_txt.restrict = "1-9";&lt;br /&gt;b_txt.restrict = "0-9";&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;maxCharsで、入力文字数を制限、&lt;br /&gt;（文字数なので、半角でも全角でも１文字、と判定する、、と思います。※未実証）&lt;br /&gt;restrictで、入力文字を制限しています。&lt;br /&gt;&lt;br /&gt;flair4 blog - &lt;a href="http://blog.flair4.jp/2007/11/flash.html" target="_blank"&gt;Flashのテキストフィールドで文字入力を制限する&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;※ただし、背景色を透明にしてしまうと、WinのIEでは日本語入力が効かなくなるそうです。&lt;br /&gt;fl0260 - &lt;a href="http://support.adobe.co.jp/faq/faq/qadoc.sv?228635+002" taget="_blank"&gt;wmode を transparent に設定した際の注意点&lt;/a&gt;&lt;br /&gt;Flash-JP.COM - &lt;a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=1789&amp;forum=6" target="_blank"&gt;テキスト入力textfieldにIE6で日本語入力は×ですか？&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;これらの応用、とまではいきませんが、とある案件で、&lt;br /&gt;とある日付までの日数のカウントダウン、&lt;br /&gt;を作ったので、それをちょっと改造して、&lt;br /&gt;入力された日付までの日数を表示するものを作ってみました。&lt;br /&gt;（今年（2008年）は閏年なので、今年限定です、、。&lt;br /&gt;さらに、今の日付よりも前の日付を入力すると、0日、と表示されるようにしました。）&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0712/071204_2.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;ソースを書いておきます。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;//現在の日にちを取得&lt;br /&gt;var dateObj:Object = new Date;&lt;br /&gt;var mm:Number = dateObj.getMonth() + 1;&lt;br /&gt;var dd:Number = dateObj.getDate();&lt;br /&gt;&lt;br /&gt;//日にちのセット&lt;br /&gt;var m:Array = [31,29,31,30,31,30,31,31,30,31,30,31];&lt;br /&gt;&lt;br /&gt;//トータル日にち用&lt;br /&gt;var totalDay:Number = 0;&lt;br /&gt;&lt;br /&gt;function calculation(){&lt;br /&gt; //入力された日にちを数字に変換&lt;br /&gt; var month:Number = Number(month_txt.text);&lt;br /&gt; var day:Number = Number(day_txt.text);&lt;br /&gt; //12月分ループ&lt;br /&gt; for ( i = 0 ; i &lt; 12 ; i++){&lt;br /&gt;  if ( month &lt; mm){ //入力月が前月&lt;br /&gt;   totalDay = 0;&lt;br /&gt;  } else if ( month == mm){ //入力月が今月&lt;br /&gt;   if ( day &lt;= dd){ //入力日が前日もしくは当日&lt;br /&gt;    totalDay = 0;&lt;br /&gt;   } else { //入力日までの日数を入れる&lt;br /&gt;    totalDay = day-dd;&lt;br /&gt;   }&lt;br /&gt;  } else{&lt;br /&gt;   if ( (i+1) &lt; mm){ //i+1の値が今月より前の月&lt;br /&gt;   &lt;br /&gt;   } else if( (i+1) == mm){//i+1の値が今月&lt;br /&gt;    totalDay += ( m[i] - dd);&lt;br /&gt;   } else{//i+1の値が今月以降&lt;br /&gt;    if ( (i+1) &lt; month){&lt;br /&gt;     totalDay += m[i];&lt;br /&gt;    } else if ( (i+1) == month){&lt;br /&gt;     totalDay += day;&lt;br /&gt;    } else{&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; total_txt.text = totalDay;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sum_btn.onPress = function(){&lt;br /&gt; totalDay = 0;&lt;br /&gt; calculation();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;もっと簡単に作れるかと思いきや、作ってみると思ったより長くなりました、、。&lt;br /&gt;&lt;br /&gt;forループで、１～１２月までまわして、それぞれの条件に合った日数を、&lt;br /&gt;totalDayに足していっているのですが、&lt;br /&gt;その条件分岐がちょっとややこしくなってます。&lt;br /&gt;&lt;br /&gt;解説してみます。&lt;br /&gt;（入力された月→month&lt;br /&gt;入力された日→day&lt;br /&gt;現在の月→mm&lt;br /&gt;現在の日→dd&lt;br /&gt;ループ中のi+1→I&lt;br /&gt;と、します。）&lt;br /&gt;１．monthがmm以前&lt;br /&gt;２．monthがmmと同一&lt;br /&gt;３．monthがmm以降&lt;br /&gt;３の時のみ、Iを使った判定を行う。以下は、３の中の処理。&lt;br /&gt;４．Iがmm以前&lt;br /&gt;５．Iがmmと同一&lt;br /&gt;６．Iがmm以降&lt;br /&gt;６の中で、さらに以下を判定&lt;br /&gt;７．Iがmonth以前&lt;br /&gt;８．Iがmonthと同一&lt;br /&gt;９．Iがmonth以降&lt;br /&gt;&lt;br /&gt;と、なります。（書いてて自分でも混乱しそう、、）&lt;br /&gt;&lt;br /&gt;それぞれの時にtotalDayに何を足していくかと言うと、、&lt;br /&gt;１．０日とします。&lt;br /&gt;２．日付の処理を行う。&lt;br /&gt;３．－&lt;br /&gt;４．何もしない&lt;br /&gt;５．monthからmmを引いた値（今月の残り日数）を足す&lt;br /&gt;６．－&lt;br /&gt;７．それぞれの月の日数を足す&lt;br /&gt;８．ddを足す&lt;br /&gt;９．何もしない&lt;br /&gt;&lt;br /&gt;２の日付の処理とは、月でやった、１～３の処理と同じ事を、&lt;br /&gt;日付で行います。&lt;br /&gt;&lt;br /&gt;これによって、入力された日付までの日数が表示される、はず、です。&lt;br /&gt;（バグがあっても保障は致しません、、）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ちなみに、これに、年、を付加しようとなると、万年カレンダーの考え方が必要になります。&lt;br /&gt;&lt;br /&gt;ですが、これは結構やっかいそうなので、&lt;br /&gt;（昔からあるプログラムの練習問題みたいな感じのようですが、、）&lt;br /&gt;参考リンクだけ、、。&lt;br /&gt;&lt;br /&gt;参考:&lt;br /&gt;Programのプ - &lt;a href="http://www.asahi-net.or.jp/~QB3K-KWSK/rpg/program/tutorial/t02h.html" target="_blank"&gt;万年カレンダー解説&lt;/a&gt;&lt;br /&gt;The page 31. - &lt;a href="http://homepage2.nifty.com/nishidah/a_p0105a.htm" target="_blank"&gt;論文：万年カレンダーを作る（上）&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;たぶん、日数計算だけなら、ユリウス通日、とか言うものの考え方を使えば簡単そう、、。&lt;br /&gt;&lt;br /&gt;また万年カレンダーを作ったらここに解説します。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-9173784927698564466?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/9173784927698564466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/9173784927698564466'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2008/01/textfield1.html' title='TextField(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-8347807094427868126</id><published>2007-11-13T20:33:00.001+09:00</published><updated>2007-12-04T20:58:26.499+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Sound'/><title type='text'>Sound</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;サウンドを読み込む時。&lt;br /&gt;（※loadSoundや、attachSound()での読み込み時のみ。&lt;br /&gt;タイムライン上のサウンドは別）&lt;br /&gt;&lt;br /&gt;読み込む時には、シンボルに割り当てる事が推奨されている。&lt;br /&gt;&lt;br /&gt;同時に複数のサウンドを読み込み、&lt;br /&gt;それぞれのボリュームや、再生停止を制御したい場合、&lt;br /&gt;別々のシンボルに割り当てていないと、&lt;br /&gt;全てのサウンドに設定が適用されてしまいます。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;soundA = new Sound(mcA); //mcAに関連付け&lt;br /&gt;soundB = new Sound(mcB); //mcBに関連付け&lt;br /&gt;soundA.attachSound("SoundA");&lt;br /&gt;soundB.attachSound("SoundB");&lt;br /&gt;soundA.setVolume(30); //soundAとsoundBで別々に&lt;br /&gt;soundB.setVolume(70); //ボリュームを制御できる&lt;br /&gt;soundA.start();&lt;br /&gt;soundB.start();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;参考：なぜにGAC - &lt;a href="http://www.gac.jp/article/index.php?stats=question&amp;command=msg&amp;category=19&amp;id=18975" target="_blank"&gt;ASにて複数Soundの制御方法--volume&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;このように別々のシンボルに割り当てることによって、&lt;br /&gt;それぞれの制御が可能となります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;参考資料：&lt;br /&gt;FumioNonaka.com Macromedia Flash非公式テクニカルノート - &lt;br /&gt; &lt;a href="http://www.fumiononaka.com/TechNotes/Flash/FN0509001.html" target="_blank"&gt;ボリューム0でSound.loadSound()すると100に戻しても音が聴こえない&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-8347807094427868126?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8347807094427868126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8347807094427868126'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/11/sound.html' title='Sound'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-2299638144218759095</id><published>2007-11-07T11:55:00.000+09:00</published><updated>2007-11-13T20:37:22.333+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Flash + HTML</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;HTML側から変数をFlashへ渡す方法。&lt;br /&gt;&lt;br /&gt;まず、HTML側。&lt;br /&gt;&lt;br /&gt;swfを呼び出す記述の中のURLに、&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;071107.swf?flag=red&lt;/pre&gt;&lt;br /&gt;と、ファイル名の後に、&lt;br /&gt;?＜変数名＞=＜変数＞と、する。&lt;br /&gt;&lt;br /&gt;これにより、指定した変数名に、指定した変数が代入された状態で、&lt;br /&gt;フラッシュの再生が始まる。&lt;br /&gt;今の場合だと、flagに、redという（文字列）が入った状態。&lt;br /&gt;&lt;br /&gt;いたってシンプルです。&lt;br /&gt;そのまま入ります。&lt;br /&gt;&lt;br /&gt;複数個、続ける場合は＆でつなげる。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;071107.swf?flag=red&amp;s=11&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;では、実際に、例。&lt;br /&gt;&lt;br /&gt;フラッシュを上にあった記述で貼り付けてみる。&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;071107.swf?flag=red&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071107.swf?flag=red","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;btn横のテキストには、与えられた変数を表示するようにしている。&lt;br /&gt;今の場合は、「red」。&lt;br /&gt;そして、ボタンを押すと、赤くなる。&lt;br /&gt;&lt;br /&gt;では、ここに違うものをいれてみる。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;071107.swf?flag=blue&lt;/pre&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071107.swf?flag=blue","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;あらかじめ、「blue」だったら青くなるようにしてあるので、&lt;br /&gt;btnを押すと青に変わります。&lt;br /&gt;テキストは「blue」。&lt;br /&gt;&lt;br /&gt;ちなみに、HTMLから与えられた変数は「_root」階層になります。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-2299638144218759095?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2299638144218759095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/2299638144218759095'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/11/flash-html.html' title='Flash + HTML'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-1551450654644808842</id><published>2007-10-16T14:44:00.000+09:00</published><updated>2007-10-16T16:29:23.447+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmap'/><title type='text'>cacheAsBitmap(2)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;マスクは便利な機能ですが、通常の使い方ではフィルタが&lt;br /&gt;かかっていたり透明のマスクなどは効果が切れてしまいます。&lt;br /&gt;&lt;br /&gt;■マスクをかける前&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_1.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;■マスクをかけた後（通常どおり）&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_2.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;■フィルタ「ぼかし」をかけたMCをマスクに&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_3.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;しかしそれも、cacheAsBitmapを使えば実現できます。&lt;br /&gt;&lt;br /&gt;※要FlashPlayer8以上&lt;br /&gt;&lt;br /&gt;マスクのかけてやり方はフレームにマスクレイヤーを作るのではなくて、&lt;br /&gt;スクリプト、setMask()でかけてやります。&lt;br /&gt;（でないと出来ません）&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;test_mc.setMask(mask_mc);&lt;br /&gt;&lt;br /&gt;test_mc.cacheAsBitmap = true;&lt;br /&gt;mask_mc.cacheAsBitmap = true;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;この様に、双方をビットマップに変換してやると、ぼかし等のフィルタがかかっていたりしてもマスクをかける事ができます。&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_4.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;そのマスクを動かしてやっても問題ありません。&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_5.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;この事はヘルプにも書いてあるそうです。&lt;br /&gt;（ちょっと感嘆の声を上げました）&lt;br /&gt;&lt;br /&gt;&lt;span style="border:solid 1px; display:block; width:300px;"&gt;&lt;p style="margin:0; padding:4px 4px 4px 4px;"&gt;&lt;strong style="color:#990000;"&gt;アルファチャンネルマスクについて&lt;/strong&gt;&lt;br /&gt;アルファチャンネルマスクは、マスクとマスクされたムービークリップの両方でビットマップキャッシュが使用されている場合にサポートされます。&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ちなみに、&lt;br /&gt;&lt;br /&gt;&lt;span style="border:solid 1px; display:block; width:300px;"&gt;&lt;p style="margin:0; padding:4px 4px 4px 4px;"&gt;&lt;strong style="color:#990000;"&gt;フィルタ、キャッシュおよび MovieClip クラスの操作&lt;/strong&gt;&lt;br /&gt;ムービークリップに少なくとも 1 つのフィルタが適用されていれば、cacheAsBitmap プロパティが true となり、実行時にムービークリップがビットマップとしてキャッシュされます。&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;だ、そうです。&lt;br /&gt;&lt;br /&gt;なら、フィルタをかけている方にはcacheAsBitmapをかけてやらなくても大丈夫という事でしょうか。&lt;br /&gt;&lt;br /&gt;結果、こうなりました。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071016_6.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;大丈夫、という事ですね。&lt;br /&gt;&lt;br /&gt;参考：&lt;a href="http://www.project-nya.jp/modules/weblog/details.php?blog_id=462" target="_blank"&gt;グラデーション・マスク - にゃあプロジェクト ウェブログ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-1551450654644808842?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/1551450654644808842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/1551450654644808842'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/cacheasbitmap2.html' title='cacheAsBitmap(2)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-8078991200794439759</id><published>2007-10-12T17:20:00.000+09:00</published><updated>2007-10-12T18:46:11.362+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><title type='text'>onMouseMove(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;フラッシュ全体がボタンになっているものがあるとします。&lt;br /&gt;&lt;br /&gt;その上に違うボタンを配置します。&lt;br /&gt;そのボタンは普段は非表示ですが、そのフラッシュ上にマウスをもっていくと現れます。&lt;br /&gt;そして離してからしばらくすると消えます。&lt;br /&gt;（ムービーのタイムラインを制御してるバー（シークバー）を考えるとわかりやすい。&lt;br /&gt;ずっと出てると邪魔だ、とか）&lt;br /&gt;&lt;br /&gt;まず、始めに思ったのが、全体のボタンにロールオーバーした時ボタンを表示、&lt;br /&gt;ロールアウトすると非表示、というものです。&lt;br /&gt;&lt;br /&gt;しかし、これには問題がありました。&lt;br /&gt;&lt;br /&gt;ボタンの上にボタンをおいてしまうと、片一方のボタンしか動作しないのです。&lt;br /&gt;（当たり前ですが。）&lt;br /&gt;&lt;br /&gt;実験：&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071012_1.swf","300","100");&lt;/script&gt;&lt;br /&gt;Btn1にロールオーバーでball_mcが動き、Btn2にロールオーバーでball2_mcが動く。&lt;br /&gt;どちらもロールアウトで止まる。&lt;br /&gt;（ボールの動きは、各mc内でタイムラインで制御）&lt;br /&gt;&lt;br /&gt;では、このボタンを重ねてみます。（Btn2が上）&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071012_2.swf","300","100");&lt;/script&gt;&lt;br /&gt;結果はごらんのとおり。&lt;br /&gt;Btn1の上にあるBtn2にロールオーバーすると、ball2_mcしか動きませんん。&lt;br /&gt;その下にあるBtn1には反応しません。&lt;br /&gt;さらに、ball_mcは止まっています。&lt;br /&gt;要するに、Btn1からはロールアウトした、と判定されてしまうのです。&lt;br /&gt;&lt;br /&gt;これでは問題です。&lt;br /&gt;&lt;br /&gt;冒頭の動きをこの方法で再現しようとすると、中にあるボタンを押そうと、ロールオーバーした瞬間に、全体のボタンからロールアウトした、と判定してしまい、ボタンが消えてしまいます。&lt;br /&gt;（そのままでも押すことは出来ますが。）&lt;br /&gt;&lt;br /&gt;で。&lt;br /&gt;&lt;br /&gt;次に考えた方法が、hitTestを使用した方法です。&lt;br /&gt;&lt;br /&gt;これについては&lt;a href="http://mrlittlebig.blogspot.com/2007/10/hittest1.html"&gt;前回のエントリー&lt;/a&gt;で書きましたが、サンプルのみ載せてみます。&lt;br /&gt;&lt;br /&gt;まず、先ほどのサンプルを改良し、&lt;br /&gt;Btn1の上にマウスが乗ると、ball_mcが動くようにします。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071012_3.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;これでは「画面全体」に反応はしてくれませんので、このBtn1を画面全体に配置します。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071012_4.swf","300","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;すると、「上に乗った時」反応はしてくれますが、「外に出たとき」は反応してくれません。&lt;br /&gt;（ball_mc内のタイムラインで外れるまでループする設定にしていますので、止まりません。）&lt;br /&gt;※ずっと動いているのがうっとおしいと思ったら一度ページをリロードして下さい。）&lt;br /&gt;&lt;br /&gt;これは、フラッシュの領域（swfの範囲）からマウスが外れても、&lt;br /&gt;フラッシュ内ではマウスの位置は画面内に停止したままになる為です。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ではどうすれば実装できるでしょうか？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;それで、考えたのが、onMouseMoveです。&lt;br /&gt;マウスが動いている時は表示、止まっている時（フラッシュ領域外に出たときも止まっている判定）は非表示、にすればいいのではないのでしょうか。&lt;br /&gt;&lt;br /&gt;ここで一つ問題があります。&lt;br /&gt;フラッシュには、onMouseMove、という、「マウスが動いたら」という関数はありますが、&lt;br /&gt;「マウスが止まったら（動いてなかったら）」という関数はありません。&lt;br /&gt;&lt;br /&gt;そこで、色々調べてみると、以下に参考になる（というか正に、な感じ）サイト（フォーラムですが）がありました。&lt;br /&gt;&lt;br /&gt;FLASH-JP.COM - &lt;a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=5325&amp;forum=6"&gt;マウスポインタが一定時間動かなかったらWebに飛ぶというものをつくりたいのですが、&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;そこでは、onMouseMove、onEnterFrame、あと、setIntervalを使用し、&lt;br /&gt;「マウスが止まったら」の判定を実現しています。&lt;br /&gt;&lt;br /&gt;そこでさっそく、その内容を冒頭の動きに近くなるように改良。&lt;br /&gt;&lt;br /&gt;結果がこれです。&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071012_5.swf","200","200");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;始めは中心にある円は表示されていますが、一度でもフラッシュエリア内にマウスが入れば、判定が始まります。&lt;br /&gt;&lt;br /&gt;以下、長いですが、コードです。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;var speed:Number = 0.5;&lt;br /&gt;var A:Number = 100;&lt;br /&gt;&lt;br /&gt;//enterFrame用の空のムービークリップ&lt;br /&gt;_root.createEmptyMovieClip("IDa",1);&lt;br /&gt;_root.createEmptyMovieClip("IDb",2);&lt;br /&gt;&lt;br /&gt;//中心の円が徐々に消える&lt;br /&gt;function transMc(){&lt;br /&gt; test_mc._alpha += ( A - test_mc._alpha)*speed;&lt;br /&gt; if ( test_mc._alpha &lt; 1){&lt;br /&gt;  test_mc._alpha = 0;&lt;br /&gt;  IDa.onEnterFrame = null;&lt;br /&gt;  IDb.onEnterFrame = null;&lt;br /&gt; }&lt;br /&gt; if ( test_mc._alpha &gt; 98){&lt;br /&gt;  test_mc._alpha = 100;&lt;br /&gt;  IDa.onEnterFrame = null;&lt;br /&gt;  IDb.onEnterFrame = null;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//ここがsetIntervalによって呼び出され、上記transMcが繰り返される&lt;br /&gt;function setTrans(){&lt;br /&gt; A = 0;&lt;br /&gt; IDa.onEnterFrame = transMc;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//マウスが動く度に読み出される&lt;br /&gt;this.onMouseMove = function(){&lt;br /&gt; clearInterval(setID);&lt;br /&gt; delete setID;&lt;br /&gt; A = 100;&lt;br /&gt; IDa.onEnterFrame = transMc;&lt;br /&gt; IDb.onEnterFrame = setEnterframe;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//マウスが動いているか止まっているかの判定の核&lt;br /&gt;function setEnterframe(){&lt;br /&gt; if( !setID){&lt;br /&gt;  setID = setInterval(setTrans,4000);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;EnterFrame処理を何もしていない時も実行しているのが嫌だったため、&lt;br /&gt;それを使用しないように、一段階ややこしくなってます。&lt;br /&gt;（FLASH-JPの方が簡単なサンプルが載ってます）&lt;br /&gt;&lt;br /&gt;簡単に解説すると、&lt;br /&gt;マウスが動いている間は、setIDが消され続けます。&lt;br /&gt;さらに、setEnterframeが、呼び出されます。&lt;br /&gt;この、setEnterframeの中では、setIDがもしなかったら、setIDを作れ、&lt;br /&gt;と、命令しています。&lt;br /&gt;ですが、マウスを動かしている間はsetIDは消され続けるのでここでイタチごっこが行われます。&lt;br /&gt;さらに、setIDにはsetIntervalを割り当て、ここでは4秒に一回、setTransを実行するよう命令しています。&lt;br /&gt;&lt;br /&gt;要するに、setIDが作られてから、4秒経つと、setTransが実行されるのです。&lt;br /&gt;&lt;br /&gt;しかし、マウスを動かしている間は、&lt;br /&gt;setIDを消去→setIDを作成→setIDを消去→4秒経つ前に再びsetIDを作成（タイマーがリセットされる）&lt;br /&gt;を繰り返しているので、いつまでたってもsetTransが実行されません。&lt;br /&gt;&lt;br /&gt;しかし、マウスを動かすのをやめると、setIDが作成された後、消去されません。&lt;br /&gt;（次にマウスを動かすまでsetIDが作られることはない。）&lt;br /&gt;なので、無事、setTransが（4秒後に）実行される事となるのです。&lt;br /&gt;&lt;br /&gt;あとは、setTransから円が消えるように指示を出してやればいいのです。&lt;br /&gt;（もう一段階踏んでますが、今趣旨とは無関係なので割愛）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-8078991200794439759?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8078991200794439759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8078991200794439759'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/onmousemove1.html' title='onMouseMove(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-8060670897002735743</id><published>2007-10-11T13:14:00.000+09:00</published><updated>2007-10-11T17:27:01.976+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmap'/><title type='text'>cacheAsBitmap(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;setMaskを使うとスクリプトでマスクをかけることが出来ます。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;test_mc.setMask(mask_mc);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071011_1.swf","400","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;test_mcをmask_mcでマスクして表示。&lt;br /&gt;mask_mcの円の形にtest_mcがくりぬかれます。&lt;br /&gt;&lt;br /&gt;この、mask_mcは今、描画オブジェクトで書かれていて、線はなし、塗りのみ、となってます。&lt;br /&gt;&lt;br /&gt;では、逆に線だけ、でマスクをかけることは出来るのでしょうか？&lt;br /&gt;とりあえす、mask_mcを線だけにしてみます。&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071011_2.swf","400","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;結果はごらんの通り。何も表示されません。&lt;br /&gt;&lt;br /&gt;要するに、描画オブジェクト（ベクターオブジェクト）の場合は塗りのみマスクが適用されるようです。&lt;br /&gt;&lt;br /&gt;では、描画オブジェクトではなく、ビットマップに変えてしまえばいいのでないか、となります。&lt;br /&gt;&lt;br /&gt;それが、cacheAsBitmapプロパティです。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00002445.html" target="_blank"&gt;acheAsBitmap (MovieClip.cacheAsBitmap プロパティ) &lt;/a&gt;- Flashドキュメンテーション&lt;br /&gt;&lt;br /&gt;これを使用するとベクターオブジェクトをビットマップオブジェクトに変換できます。&lt;br /&gt;&lt;br /&gt;引用&lt;br /&gt;&lt;blockquote cite="http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00002445.html"&gt;ビットマップがキャッシュされているムービークリップのベクターデータはすべて、メインステージでなくビットマップに描画されます。&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;このようにします。&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;test_mc.setMask(mask_mc);&lt;br /&gt;test_mc.cacheAsBitmap = true;&lt;br /&gt;mask_mc.cacheAsBitmap = true;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071011_3.swf","400","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;結果、みごとに線にマスクをかけることが出来ました。&lt;br /&gt;&lt;br /&gt;参考 - &lt;a href="http://www.project-nya.jp/modules/weblog/details.php?blog_id=596" target="_blank"&gt;線でマスク：にゃあプロジェクト&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-8060670897002735743?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8060670897002735743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/8060670897002735743'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/cacheasbitmap1.html' title='cacheAsBitmap(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-7275638665979723546</id><published>2007-10-10T12:58:00.000+09:00</published><updated>2007-10-11T17:27:09.533+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><title type='text'>hitTest(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;hitTest関数によって、マウスポインタがムービークリップと重なっているかどうか&lt;br /&gt;（そのエリアにマウスがいるかどうか）&lt;br /&gt;が、検出できます。&lt;br /&gt;以下のようにすれば、hit Areaにマウスがある時とない時で、別々のイベントが発生させれる。&lt;br /&gt;（マウスオーバーのような効果）&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function test1(){&lt;br /&gt;    test_mc._alpha --;&lt;br /&gt;}&lt;br /&gt;function test2(){&lt;br /&gt;    test_mc._alpha ++;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;_root.onMouseMove = function(){&lt;br /&gt;    var Flag = hit_mc.hitTest(_root._xmouse,_root._ymouse,true);&lt;br /&gt;    if ( Flag){&lt;br /&gt;        onEnterFrame = test1;&lt;br /&gt;    } else{&lt;br /&gt;        onEnterFrame = test2;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071010_1.swf","200","200");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;では、この範囲をFlashのサイズギリギリいっぱいまで広げてみるとどうなるのでしょうか？&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071010_2.swf","200","200");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;ご覧のとおり、外に出たときは反応しません。&lt;br /&gt;あくまでもFlash内でのみ判定可能、ということでした。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-7275638665979723546?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/7275638665979723546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/7275638665979723546'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/hittest1.html' title='hitTest(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-4818718458054561606</id><published>2007-10-10T11:53:00.000+09:00</published><updated>2007-10-10T13:08:46.760+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>背景色</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;Flashでの背景色の指定は、Flaファイル上で、&lt;br /&gt;背景の色を単純に変えてやり、パブリッシュすれば変更できる。&lt;br /&gt;（htmlを書き出さないと出来ない）&lt;br /&gt;&lt;br /&gt;だが、いちいちFlashを立ち上げるのはめんどくさい、もしくは、&lt;br /&gt;Flashのソフト（または.flaファイル）を持ってないときもある。&lt;br /&gt;&lt;br /&gt;そんな時、あとから背景色を変えるにはどうしたらいいんでしょう？&lt;br /&gt;&lt;br /&gt;答えは簡単。HTMLファイルをいじって、色を変更するだけ。&lt;br /&gt;&lt;br /&gt;直接貼り付けの場合、&lt;br /&gt;&amp;lt;param name="bgcolor" value="#ffffff" /&gt;&lt;br /&gt;&amp;lt;embed ～ bgcolor="#ffffff" ～ /&gt;&lt;br /&gt;と、なっているところの、色を変更してやるだけ。&lt;br /&gt;&lt;br /&gt;ちなみに、この箇所を、&lt;br /&gt;&amp;lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&amp;lt;embed ～ wmode=”transparent” ～ /&gt;&lt;br /&gt;に、変更してやると、背景が透明なフラッシュが出来上がります。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-4818718458054561606?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/4818718458054561606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/4818718458054561606'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/blog-post.html' title='背景色'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-37825856.post-4978198980882150438</id><published>2007-10-09T20:26:00.000+09:00</published><updated>2007-10-11T17:27:25.477+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='on'/><title type='text'>onEnterFrame(1)</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;br /&gt;onEnterFrameについて。&lt;br /&gt;&lt;br /&gt;スクリプトでムービークリップ内に、&lt;br /&gt;onClipEvent(enterframe)と、書くのではなくて、&lt;br /&gt;タイムライン内に、&lt;br /&gt;onEnterFrame = function(){ 内容 }&lt;br /&gt;と、書く方法があります。&lt;br /&gt;&lt;br /&gt;これのさらに発展形(？)で、&lt;br /&gt;function XXX (){ 内容 }と、functionで関数を設定し、&lt;br /&gt;それを、OnEnterFrameにする、という方法があります。&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function Test(){&lt;br /&gt;test_mc._x ++;&lt;br /&gt;}&lt;br /&gt;this.onEnterFrame = Test;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;と、書くと、Test関数がEnterFrameとして繰り返され、test_mcがx方向に1づつ進むこととなります。&lt;br /&gt;こうする利点として、EntterFrame処理がいらなくなったときに、消すことが出来ます。&lt;br /&gt;（たぶん、しなくても消せると思いますが、、）&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function Test(){&lt;br /&gt;test_mc._x ++;&lt;br /&gt;}&lt;br /&gt;test_btn.onPress = function(){&lt;br /&gt;this.onEnterFrame = Test;&lt;br /&gt;};&lt;br /&gt;test_btn.onRelease = function(){&lt;br /&gt;this.onEnterFrame = null;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071009_1.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;こうすると、test_btnを、押したとき(Press）test_mcが動き、&lt;br /&gt;離したとき（Release）EnterFrameにnullが与えられ（要するに、処理を消す）test_mcは止まります。&lt;br /&gt;&lt;br /&gt;色々参考サイトを見てみて、この方法があることを知ったのですが、&lt;br /&gt;見た限りでは、&lt;br /&gt;this.onEnterFrame = ～;&lt;br /&gt;と、書いてあります。&lt;br /&gt;&lt;br /&gt;では、複数のEnterFrame処理を同時に発生させ、一方だけを消す、という時はどうするのでしょうか？&lt;br /&gt;試してみます。&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function Test1(){&lt;br /&gt;test_mc._x ++;&lt;br /&gt;}&lt;br /&gt;function Test2(){&lt;br /&gt;test_mc._y ++;&lt;br /&gt;}&lt;br /&gt;test_btn.onPress = function(){&lt;br /&gt;this.onEnterFrame = Test1;&lt;br /&gt;this.onEnterFrame = Test2;&lt;br /&gt;};&lt;br /&gt;test_btn.onRelease = function(){&lt;br /&gt;this.onEnterFrame = null;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071009_2.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;結果を見ればお分かりの通り、test_mcはy方向（下)にしか動きません。&lt;br /&gt;そして、ボタンを離すと止まります。&lt;br /&gt;やはり、this.～と同じにしてるのがいけないようです。&lt;br /&gt;&lt;br /&gt;なので、次を書いてみます。&lt;br /&gt;例：&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;function Test1(){&lt;br /&gt;test_mc._x ++;&lt;br /&gt;}&lt;br /&gt;function Test2(){&lt;br /&gt;test_mc._y ++;&lt;br /&gt;}&lt;br /&gt;test_btn.onPress = function(){&lt;br /&gt;onEnterFrame = Test1;&lt;br /&gt;this.onEnterFrame = Test2;&lt;br /&gt;};&lt;br /&gt;test_btn.onRelease = function(){&lt;br /&gt;this.onEnterFrame = null;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071009_3.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;一つ目から、this.を取り除いてみました。&lt;br /&gt;結果、ボタンを押すと、斜めに（EnterFrameが同時に働いている）、離すと、x方向（横）に動き続けます。&lt;br /&gt;&lt;br /&gt;これはどうやら、どれにEnterFrame関数を当てるか、で変わってくるようです。&lt;br /&gt;Test2は、thisに当てていますので、this.onEnterFrame = null;で、処理を取り消すことが出来ます。&lt;br /&gt;しかし、Test1はとくに当てられていませんので、取り消しにはなりません。&lt;br /&gt;違いが出てきました。&lt;br /&gt;（では、何も書かない場合はどこに当てられてるんでしょう、、？）&lt;br /&gt;&lt;br /&gt;なので、それぞれの処理をそれぞれ別のムービークリップなりなんなりに割り当ててやれば管理しやすそうです。&lt;br /&gt;そこで、それぞれのためにわざわざ新規にムービークリップを作るのも手間なので、createEmptyMovieClipで、それ用のムービークリップを作ってやる事にします。&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;&lt;pre style="background-color: rgb(204, 204, 204);"&gt;_root.createEmptyMovieClip("one",1);&lt;br /&gt;_root.createEmptyMovieClip("two",2);&lt;br /&gt;function Test1(){&lt;br /&gt;test_mc._x ++;&lt;br /&gt;}&lt;br /&gt;function Test2(){&lt;br /&gt;test_mc._y ++;&lt;br /&gt;}&lt;br /&gt;test_btn.onPress = function(){&lt;br /&gt;one.onEnterFrame = Test1;&lt;br /&gt;two.onEnterFrame = Test2;&lt;br /&gt;};&lt;br /&gt;test1_btn.onRelease = function(){&lt;br /&gt;one.onEnterFrame = null;&lt;br /&gt;}&lt;br /&gt;test2_btn.onRelease = function(){&lt;br /&gt;two.onEnterFrame = null;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;FlashMulti("http://www.mrlittlebig.com/blogger/0710/071009_4.swf","200","100");&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;これで、メインのボタンをクリックすると、斜めに動き（同時に働く）、&lt;br /&gt;ボタン1をクリックで、横方向の動きが止まり、&lt;br /&gt;ボタン2をクリックで、縦方向の動きが止まるようになりました。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37825856-4978198980882150438?l=mrlittlebig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/4978198980882150438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37825856/posts/default/4978198980882150438'/><link rel='alternate' type='text/html' href='http://mrlittlebig.blogspot.com/2007/10/onenterframe1.html' title='onEnterFrame(1)'/><author><name>USK</name><uri>http://www.blogger.com/profile/06326192997842260589</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
