<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>gelsol.sub.jp</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/" />
    <link rel="self" type="application/atom+xml" href="http://gelsol.sub.jp/atom.xml" />
    <id>tag:gelsol.sub.jp,2011-02-13://2</id>
    <updated>2011-03-05T08:10:09Z</updated>
    <subtitle>ActionScript3.0 プログラミング入門 for designers</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.01</generator>

<entry>
    <title>Flash から PDF ファイルなどを開く - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2011/03/open-pdf.html" />
    <id>tag:gelsol.sub.jp,2011:/examples//1.117</id>

    <published>2011-03-05T08:06:14Z</published>
    <updated>2011-03-05T08:10:09Z</updated>

    <summary>fscommand() 関数を使用すれば、プロジェクタの内部から fscomma...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="fscommand" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fscommand" label="fscommand" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[<p>fscommand() 関数を使用すれば、プロジェクタの内部から fscommand フォルダ内のあるアプリケーションを動作させることができます。<br />
ただし、fscommand フォルダはプロジェクタと同階層になければなりません。セキュリティ上の制限によって、プロジェクタと同階層にある fscommand フォルダ以外にあるアプリケーションを動作させることができません。</p>

<p>次の例は、プロジェクタと同階層の fscommand フォルダ内にあるアプリケーション someApplication.exe を実行させます。</p>

<div class="source">
<pre class="js" name="code">fscommand ("exec", "someApplication.exe");
</pre>
</div>

<p>第 1 引数には exec コマンドを指定し、第 2 引数には アプリケーションへのファイル名を指定します。こらは、ファイル名のみを指定し、サブディレクトリ名 fscommand はパスとして含めません。<br />

アプリケーションに対するパスの指定はできないようです。ですので、fscommand フォルダ内にサブフォルダを作成して、その中の実行ファイルを指定することもできません。</p>


<p>ただ、プロジェクターから PDF、Excel、 Word ファイルなどを起動したい場合があります。
下記のサイトにスマートな方法が掲載されていたのでその方法を紹介します。</p>

<ul>
  <li><a href="http://www.artfans.info/open-pdf-file-from-flash-using-fscommand/" target="_blank" class="outlink">How To Open PDF File From Flash using Fscommand | Artfans Design</a></li>
</ul>


<p>Acrobat、 Excel、 Word といった実行ファイルをfscommand フォルダに入れることができません。ですので、fscommand フォルダにバッチファイルを作成し、開きたいファイルと一緒に入れておきます。</p>

<p>fscommand フォルダ内に open_pdf.bat ファイルを作成し、次のように記述しておきます。
（.bat ファイルは単なるテキストファイルです。）</p>

<div class="source">
<pre class="js" name="code">@echo off
start same_file.pdf
</pre>
</div>

<p>バッチファイル中で echo off とすると、その行より下のコマンドはコマンドプロンプトに表示されません。
また、バッチファイル中のコマンドの先頭に@をつけることによって、そのコマンド自体をコマンドプロンプトに表示しないようにしています。</p>

<p>これは、DOS窓を表示させないようにするためのものです。
（残念ながら、一瞬だけ見えてしまいますが...）</p>

<p>startコマンドは、指定されたプログラムまたはコマンドを実行するために 新たにウィンドウを開く コマンドです。<br />
次のように開きたいファイル名を引数にして指定すると対応するアプリケーションを自動的に起動してファイルを開いてくれます。</p>

<div class="source">
<pre class="js" name="code">start "ファイル名"
</pre>
</div>

<p>ファイルの構成は次のようになります。</p>

<blockquote>
<pre>　┗ movie.exe （Flash プロジェクター）
　┗ fscommand
　　┗ open_pdf.bat
　　┗ same_file.pdf
</pre>
</blockquote>


<p>Actionscript ではPDFファイルなどを開くためのボタンに次のように設定しましょう。</p>

<div class="source">
<pre class="js" name="code">openPdfButton.addEventListener (MouseEvent.CLICK, openPdf);
function openPdf (event:MouseEvent):void {
	fscommand ("exec", "open_pdf.bat");
}
</pre>
</div>

<p>パブリッシュ設定で、Windows プロジェクタ形式にチェックを入れパブリッシュしてプロジェクタを書き出します。</p>]]>
        
    </content>
</entry>

<entry>
    <title>jquery.newmark.js で一定の期間だけ New マークを表示する - javascript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/javascript/2011/02/jquery-newmark.html" />
    <id>tag:gelsol.sub.jp,2011:/javascript//9.116</id>

    <published>2011-02-20T07:30:37Z</published>
    <updated>2011-02-26T06:42:18Z</updated>

    <summary>jquery.newmark.js は 新着ニュースの一覧などで公開あるいは更新から一定の期間の間だけ New マークを表示をさせることができます。</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="jQuery" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/javascript/">
        <![CDATA[<p>下記のサイトで紹介されていたコードを少し改変してプラグイン化しております。</p>

<ul>
  <li><a href="http://www.tinybeans.net/blog/2008/09/25-062812.html" target="_blank" class="outlink">一定時間で自動的に消える New マークを付ける JavaScript の jQuery 版 - かたつむりくんのWWW</a></li>
</ul>

<p>jquery.newmark.js は 新着ニュースの一覧などで公開あるいは更新から一定の期間の間だけ New マークを表示をさせることができます。class 属性 newmark を指定された a 要素の後に html 要素や New マークの画像などを挿入します。</p>

<p>jquery.newmark.js は、下記よりファイルをダウンロードしてご使用ください。</p>

<br />

<p><a href="http://gelsol.sub.jp/download/jquery_newmark/v0.1.zip"> download </a></p>

<br />

<p>ダウンロードした zip ファイルを解凍したフォルダには以下のようなファイルが含まれます。</p>

<blockquote>
<pre>v0.1
　┗ index.html
　┗ jquery.js
　┗ jquery.newmark.js
　┗ images
　　┗ new.gif
</pre>
</blockquote>

<ul>
  <li><a href="http://jquery.com/" target="_blank" class="outlink">jQuery: The Write Less, Do More, JavaScript Libraryy</a></li>
</ul>

<p>以下は、jquery.newmark.js の設置方法を説明します。</p>

<p>head 要素内で以下のように jquery.js とjquery.newmark.jsを読み込みます。src 属性内は格納ディレクトリによって適宜変更してください。</p>


<div class="source">
<pre class="prettyprint" id="html">&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.newmark.js"&gt;&lt;/script&gt;
</pre>
</div>

<p>次に、以下のコードを記述して、newmark() 関数を実行させます。

</p><div class="source">
<pre class="js" name="code">&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
$(document).ready(function(){
	$(".newmark").newmark({
		past: 72,
		icon: "&lt;img src="images/new.gif" alt="new"&gt;"
	});
});
/* ]]&gt; */
&lt;/script&gt;
</pre>
</div>

<p>公開から何時間経過したら New マークを消すかを指定する past パラメータと、 New マークとなる html の要素や画像などを指定する icon パラメータを設定します。</p>

<p>past パラメータは、デフォルトでは 72 時間（ 3 日）となっています。<br />
icon パラメータは、マークアップされたテキストでも、img 要素で指定した画像を設定することもできます。

<p>New マークなどを表示させてい一覧でリンクの a 要素のclass属性を <strong>newmark</strong> に設定します。<br />
さらに title 属性に「<strong>2011:02:20</strong>」（年:月:日）ようなフォーマットで更新日時を設定します。この日付設定を基準にしてpast パラメータで指定した時間が経過したかどうかを判定します。</p>

<p>もし、指定した時間が経過していなければ、 a 要素の後ろに icon パラメータに指定した New マークの要素を挿入します。</p>

<div class="source">
<pre class="js" name="code">&lt;ul&gt;
  &lt;li&gt;&lt;a href="#" title="2011:02:20" class="newmark"&gt;2011年02月20日のニュース&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
</div>

<p>このスクリプトは、CMS などで利用すれば効率的です。
下記の例は、Movable Type で利用する場合のサンプルです。</p>

<div class="source">
<pre class="html" name="code">&lt;ul&gt;
&lt;MTEntries&gt;
  &lt;li&gt;&lt;a href="&lt;$MTEntryPermalink$&gt;" title="&lt;$mt:EntryDate format="%Y:%m:%d"$&gt;" class="newmark"&gt;&lt;$mt:EntryTitle$&gt; &lt;/a&gt;&lt;/li&gt;
&lt;/MTEntries&gt;
&lt;/ul&gt;
</pre>
</div>

<br />

<p>下記の例は、WordPress で利用する場合の設定です。</p>

<div class="source">
<pre class="html" name="code">&lt;ul&gt;
&lt;?php while ( have_posts() ) : the_post(); ?&gt;
  &lt;li&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;" title="&lt;?php the_modified_time('Y:m:d'); ?&gt;" class="newmark"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
&lt;?php endwhile; ?&gt;
&lt;/ul&gt;
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>SWFObject v2.0 を使った Flash 埋め込み - javascript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/javascript/2011/02/swfobject-20.html" />
    <id>tag:gelsol.sub.jp,2011:/javascript//9.115</id>

    <published>2011-02-20T03:46:30Z</published>
    <updated>2011-02-20T04:04:05Z</updated>

    <summary>以前に SWFObject のバージョン 1.5 の使用方法を紹介しましたが、最...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="others" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="swfobject" label="SWFObject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/javascript/">
        <![CDATA[<p>以前に <a href="http://gelsol.sub.jp/javascript/2010/08/swfobject-15.html">SWFObject のバージョン 1.5</a> の使用方法を紹介しましたが、最近では、バージョン 2.0 のほうがよく使うので使用方法についてメモしておきます。この記事は、下記のサイトを参照しました。</p>

<ul>
  <li><a href="http://code.google.com/p/swfobject/" target="_blank" class="outlink">swfobject - Google Code</a></li>
  <li><a href="http://mtl.recruit.co.jp/blog/2007/10/swfobject_v20.html" target="_blank" class="outlink">SWFObject v2.0 ドキュメント日本語訳</a></li>
  <li><a href="http://www.trick7.com/blog/2007/10/10-154047.php" target="_blank" class="outlink">trick7 - SWFObject v2.0 ドキュメント日本語訳しました</a></li>
</ul>

<p>バージョン 2.0 では、Flash を埋め込む方法として2つのオプションが用意されてるようです。</p>

<p>1 つ目は、標準準拠のマークアップを使った Flash 埋め込み方法で、現状の標準準拠のマークアップでコーディングでき、JavaScript に頼ることなく Flash コンテンツを挿入できる仕組みになっているようです。<br />
つまり、JavaScript がオフでも Flash コンテンツが見ることがでるということですね。<br />
具体的には、入れ子にした object 要素を使用しますが、コードの記述が冗長で、個人的には好きではありません。</p>

<p>2 つ目に用意されているオプションが、バージョン 1.5 と同様に Flash コンテンツをダイナミックに埋め込む方法で、JavaScript が代替 HTML コンテンツ部分を Flash コンテンツに置き換えてくれます。</p>

<p>これは、Flash が表示されない場合の代替コンテンツを通常のHTMLでコーディングしておき、そのコンテンツ部分に id を設定しておくことで、その id で指定された要素の部分をすべて Flash コンテンツに置き換えるというものです。この代替 HTML の部分は、通常のHTMLとしてコーディングできますので、SEO（検索エンジン最適化）対策にもなるでしょう。</p>

<p>またこの方法では、IE で Flash の埋め込まれたサイトを訪れたとき Flash を一度クリックしないとアクティブ化できない問題も回避できます。</p>

<p>オプション 2 の紹介をします。</p>

<p>Flashコンテンツを埋め込みたい部分に代替となるHTMLを記述します。そしてそのコンテンツを囲むブロック要素に id を設定します。<br />
下記の例は、代替 HTML を囲む div 要素に id 名 flashContent を設定しています。</p>


<div class="source">
<pre class="html" name="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"&gt;
  &lt;head&gt;
    &lt;title&gt;SWFObject v2.0 を使ったFlash コンテンツのダイナミックな埋め込み&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    
    &lt;div id="flashContent"&gt;
      &lt;!-- 代替コンテンツ --&gt;
    &lt;/div&gt;
    
  &lt;/body&gt;
&lt;/html&gt;
</pre>
</div>

<p>次に、HTML ページの head 要素に SWFObject JavaScript ライブラリを読み込ませます。</p>

<div class="source">
<pre class="html" name="code">&lt;script type="text/javascript" src="swfobject.js"&gt;&lt;/script&gt;
</pre>
</div>

<p>次に、swfobject.embedSWF() 関数を使って swf を埋め込みます。</p>

<dl class="method">
<dt>swfobject.embedSWF( swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes );</dt>
<dd>パラメータ：</dd>
<dd>swfUrl:String :  swf ファイルの url を指定。</dd>
<dd>id:String : flash コンテンツと入れ替えたい html 要素（代替コンテンツを内包している要素）の id を指定。</dd>
<dd>width:String : swf ファイルの幅を指定。</dd>
<dd>height:String : swf ファイルの高さを指定。</dd>
<dd>version:String : swf を再生するのに必要な Flash Player のバージョンを指定。</dd>
<dd>expressInstallSwfurl:String （オプション） : Adobe express install [ http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75／日本語資料 http://www.adobe.com/jp/devnet/flashplayer/articles/expressinstall.html ] をインストールするための SWF ファイルへの URL を指定。</dd>
<dd>flashvars （オプション） : オブジェクト形式で指定可能</dd>
<dd>param （オプション） : オブジェクト形式で指定可能&lt;</dd>
<dd>attributes （オプション） : オブジェクト形式で指定可能&lt;</dd>
</dl>

<p>swfUrl, id, width, height, version が必須項目です。</p>

<p>下記の例では、最小限の設定で、myFlash.swf ダイナミックに埋め込んでいます。</p>

<div class="source">
<pre class="html" name="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;SWFObject v2.0 を使ったFlash コンテンツのダイナミックな埋め込み&lt;/title&gt;
&lt;script type="text/javascript" src="swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
swfobject.embedSWF("myFlash.swf", "flashContent", "320", "240", "9.0.0");
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="flashContent"&gt;
    &lt;!-- 代替コンテンツ --&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>Simplest Flash Slideshow ver1.1 - Trash</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/trash/2011/02/simplest-flash-slideshow-ver11.html" />
    <id>tag:gelsol.sub.jp,2011:/trash//11.114</id>

    <published>2011-02-15T06:57:40Z</published>
    <updated>2011-02-20T08:07:57Z</updated>

    <summary>シンプルな Flash スライドショー「Simplest Flash Slideshow」のバージョン 1.1 です。フリーの Flash 素材です。商用も含め、無料で自由にご利用いただけます。</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Flash" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jquery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swfobject" label="swfobject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/trash/">
        <![CDATA[<p>シンプルな Flash スライドショー「Simplest Flash Slideshow」のバージョン 1.1 です。</p>

<br />

<p><a href="http://gelsol.sub.jp/demo/simplest_flash_slideshow_v1.1/" target="_blank" class="outlink"> demonstration </a> </p>

<br />

<p>「Simplest Flash Slideshow」はフリーの Flash 素材です。商用も含め、無料で自由にご利用いただけます。また、リンク・著作権（クレジット）表記、及びご利用に際しての報告はご不要です。（※ 但し、再配布はご遠慮ください。）<br />
下記よりファイルをダウンロードしてご使用ください。</p>

<br />

<p><a href="http://gelsol.sub.jp/download/simplest_flash_slideshow/v1.1.zip"> download </a> ( v1.1.zip / 311,421KB )</p>


<p>※ Flash を表示させるために <a href="http://jquery.com/" target="_blank" class="outlink">jquery</a> と、 <a href="http://code.google.com/p/swfobject/" target="_blank" class="outlink">swfobject</a> を使用しています。</p>

<br />

<p>ダウンロードした zip ファイルを解凍したフォルダには以下のようなファイルが含まれます。「images」フォルダ内の画像はサンプルです。</p>

<blockquote>
<pre>v1.1
　┗ index.html
　┗ Main.swf
　┗ static
　　┗ expressInstall.swf
　　┗ flashslideshow.js
　　┗ jquery.js
　　┗ swfobject.js
　┗ images
　　┗ photo01.jpg
　　┗ photo02.jpg
　　┗ photo03.jpg
</pre>
</blockquote>

<br />

<p>以下は、「Simplest Flash Slideshow ver1.1」の設置方法を説明します。<br />
まず、html の head 内に次のコードを記述します。</p>

<div class="source">
<pre class="prettyprint" id="html">&lt;script type="text/javascript" src="static/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/flashslideshow.js"&gt;&lt;/script&gt;
</pre>
</div>

<p>さらに上のコードに続いて、Flash へ渡すためのをパラメータを指定するコードを追加します。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
$(document).ready(function(){
	$("#flash").flashgarelly({
		url: 'images/photo01.jpg,images/photo02.jpg,images/photo03.jpg',
		w: '720px',
		h: '340px',
		delay: '5000',
		loop: '0'
	});
});
/* ]]&gt; */
&lt;/script&gt;
</pre>
</div>

<p>スライドショーに表示される画像は url パラメータで指定します。
html からの相対パスあるいは絶対パスで任意の枚数を指定することができます。このとき、画像パスは、「 , 」で区切って記述します。<br />
上記の例では、「images/photo01.jpg」と「images/photo02.jpg」と「images/photo03.jpg」の 3 枚の画像を url パラメータで指定しています。</p>

<br />

<p>w パラメータと h パラメータでは、Flash の表示領域を設定します。このサイズはスライドショーで表示したい画像のサイズと等しくしておきます。</p>

<br />

<p>delay パラメータで指定している値は、画像の切り替わり時間を設定しています。デフォルトでは 5000 ミリ秒（5秒）となっています。これは、画像は表示されてから次の画像が表示を開始する（フェードインが始まる）までの時間です。</p>

<br />

<p>loop  パラメータでは、スライドショーがループをするかどうかを指定できます。<br />
デフォルトの 0 ではスライドショーはループをしません。この値を 1 にするとスライドショーが最後の画像まで行くと最初の画像に戻ってループをし続けます</p>

<br />

<p>最後に、body 内に次のコードを追加します。このコードを埋め込んだ場所に Flash コンテンツが表示されます。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;div id="flash"&gt;&lt;/div&gt;
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>データ型のキャスト（変換） - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2011/02/object001.html" />
    <id>tag:gelsol.sub.jp,2011:/examples//1.113</id>

    <published>2011-02-13T06:36:48Z</published>
    <updated>2011-02-13T08:27:30Z</updated>

    <summary> 「キャスト」とは、型の不一致によってコンパイル時にエラーを生成させたくない場合...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Object" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="as" label="as" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="object" label="Object" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[<p> 「キャスト」とは、型の不一致によってコンパイル時にエラーを生成させたくない場合意図的に行う型変換のことです。<br />
異なるデータ型にキャストするには、インスタンス名を括弧で囲み、その前に変換したいデータ型の名前（クラス名）の後に括弧で囲んだ変数を続けます。</p>

<div class="source">
<pre class="js" name="code">DataType (object);
// 変換したいデータ型（オブジェクト名）
</pre>
</div>

<p>次の例は、インスタンス名からインスタンスを参照する場合に、DisplayObjectContainer.getChildByName メソッドにより文字列から参照を取得する方法です。<br />
このとき、DisplayObject で取得した参照を MovieClip インスタンスにキャストしています。</p>

<div class="source">
<pre class="js" name="code">var mc:MovieClip = new MovieClip();
addChild (mc);
mc.name = "myName";

var target_mc:MovieClip = MovieClip(getChildByName("myName"));
trace (target_mc.name);
</pre>
</div>

<br />

<p>また、この方法以外にも as 演算子を使ってキャストすることができます。</p>

<div class="source">
<pre class="js" name="code">expression as datatype;
// オブジェクト名 as 変換したいデータ型
</pre>
</div>

<p>次の例は、上記の例と同様の処理（キャスト）を as 演算子を使って行っています。</p>

<div class="source">
<pre class="js" name="code">var mc:MovieClip = new MovieClip();
addChild (mc);
mc.name = "myName";

var target_mc:MovieClip = getChildByName("myName") as MovieClip;
trace (target_mc.name);
</pre></div>]]>
        
    </content>
</entry>

<entry>
    <title>Bitmapのタイリング - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2011/02/graphics001.html" />
    <id>tag:gelsol.sub.jp,2011:/examples//1.112</id>

    <published>2011-02-12T09:17:15Z</published>
    <updated>2011-02-13T08:26:17Z</updated>

    <summary> ライブラリに読み込まれたビットマップをタイリングして配置する方法を紹介します。...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Graphics" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bitmap" label="Bitmap" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="bitmapdata" label="BitmapData" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="graphics" label="Graphics" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[
<p>ライブラリに読み込まれたビットマップをタイリングして配置する方法を紹介します。</p>

<p>まず、ライブラリにあるビットマップを Actionscript で扱えるようにクラス設定をします。<br />
［ライブラリ］のメニューから［プロパティ］を選択し、［プロパティ］ダイアログボックスを開き［リンケージ」オプションを表示します。<br />
「ActionScriptに書き出し」にチェックをつけ、「クラス」のテキストボックスがアクティブになりますので、任意のクラス名を入力します。<br />
ここでは、ビットマップに対して、クラス名を「tile」と設定したとします。
この tile クラスは BitmapData クラスのサブクラスとなります。</p>

<br />

<p>次のコードは、 tile クラスのインスタンスを生成します。
引数としてビットマップデータの幅と高さを渡すのですが、0 で設定しておいて問題はありません。</p>

<div class="source">
<pre class="js" name="code">var bmd:BitmapData = new tile(0, 0);
</pre>
</div>

<p>このままビットマップを表示するのであればBitmapData クラスのインスタンスを引数に Bitmap クラスのインスタンスを生成し addChild() メソッドを実行すればよいのですが、タイリングで塗りつぶすために Graphics クラスの beginBitmapFill() メソッドを使用します。</p>

<p>Graphics.beginBitmapFill() メソッドは、描画領域をビットマップイメージで塗りつぶします。</p>

<dl class="method">
<dt>beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void</dt>

<dd>パラメータ：<br />
&nbsp; bitmap &nbsp; 表示されるビットマップイメージ <br />
&nbsp; matrix &nbsp; (default = null) ― flash.geom.Matrix クラスのマトリックスオブジェクト <br />
&nbsp; repeat &nbsp; (default = true) ― true の場合、ビットマップイメージが一定のパターンでタイル状に表示されます。false の場合、ビットマップイメージは繰り返されません。</dd>
</dl>

<p>下記のコードは、Sprite クラスのインスタンスを生成して、指定の領域をビットマップで塗りつぶしています。Graphics クラスは、Sprite クラスの graphics プロパティによってアクセスします。</p>

<div class="source">
<pre class="js" name="code">var bmd:BitmapData = new tile(0, 0);

var sp:Sprite = new Sprite();
sp.graphics.beginBitmapFill(bmd);
sp.graphics.drawRect(0,0,640,480);
sp.graphics.endFill();

addChild(sp);
</pre>
</div>


<p>下記のコードは、指定のムービークリップを領域の範囲を指定してビットマップで塗りつぶすクラスです。このクラスは、引数として、「ビットマップで塗りつぶしたいムービークリップ」、「塗りつぶす領域の範囲」、リンケージで設定したビットマップの「クラス名」を渡します。</p>

<br />

<p>BitmapTiling クラス</p>

<div class="source">
<pre class="js" name="code">package {
	import flash.display.*;
	import flash.geom.Matrix;
	import flash.utils.getDefinitionByName;

	public class BitmapTiling extends Sprite {
		function BitmapTiling(container:DisplayObjectContainer,w:Number,h:Number,className:String) {
			var myClass:Class = Class(getDefinitionByName(className));
			var bmd:BitmapData = new myClass(0,0);

			var sp:Sprite = new Sprite();
			sp.graphics.beginBitmapFill(bmd);
			sp.graphics.drawRect(0,0,w,h);
			sp.graphics.endFill();

			container.addChild(sp);
		}
	}
}
</pre>
</div>

<p>BitmapTiling クラスを実行するために、fla ファイルのフレームアクションに次のコードを記述します。<br />
MovieClip のインスタンス mc を「tile」クラスを指定したビットマップで、幅 200 ピクセル、高さ100 ピクセルの範囲を塗りつぶします。</p>

<div class="source">
<pre class="js" name="code">var myBitmapTiling:BitmapTiling = new BitmapTiling(mc, 200, 100, "tile");
</pre>
</div>

<p>引数で渡されたクラス名は、etDefinitionByName() 関数を使ってクラスオブジェクトへの参照を取得します。</p>

<dl class="method">
<dt>getDefinitionByName(name:String):Object</dt>
<dd>パラメータ：<br />
 &nbsp; name:String &nbsp; クラス名</dd>
<dd>戻り値：<br />
 &nbsp; Object &nbsp; name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。</dd>
</dl>

<br />

<p>次のクラスは、外部のビットマップ画像を読み込みタイリングするクラスです。</p>

<br />

<p>LoadBitmapTiling クラス</p>

<div class="source">
<pre class="js" name="code">package {
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.events.*;
	import flash.geom.Matrix;

	public class LoadBitmapTiling extends Sprite {
		private var container:DisplayObjectContainer;
		private var w:Number;
		private var h:Number;

		function LoadBitmapTiling(container:DisplayObjectContainer,w:Number,h:Number,url:String) {
			this.container = container;
			this.w = w;
			this.h = h;

			var loader:Loader = new Loader();
			loader.load(new URLRequest(url));
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
		}

		private function onComplete(event:Event):void {
			var bmd:BitmapData = new BitmapData(event.target.loader.width,event.target.loader.height,false);
			bmd.draw(event.target.loader, new Matrix());

			var sp:Sprite = new Sprite();
			sp.graphics.beginBitmapFill(bmd);
			sp.graphics.drawRect(0, 0, w, h);
			sp.graphics.endFill();

			container.addChild(sp);
		}
	}
}
</pre>
</div>

<p>fla ファイルのフレームアクションに次のコードを記述します。</p>

<div class="source">
<pre class="js" name="code">var myLoadBitmapTiling:LoadBitmapTiling = new LoadBitmapTiling(mc, 200, 100, "tile.jpg");
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>html の背景に配置する Flash スライドショー - Trash</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/trash/2011/02/003.html" />
    <id>tag:gelsol.sub.jp,2011:/trash//11.111</id>

    <published>2011-02-11T08:33:50Z</published>
    <updated>2011-02-11T08:37:05Z</updated>

    <summary> このパッケージは、html の背景を Flash スライドショーにします。  ...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Flash" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/trash/">
        <![CDATA[ <p>このパッケージは、html の背景を Flash スライドショーにします。</p>

<p><a href="http://gelsol.sub.jp/sample/bf/v0.1/" target="_blank" class="outlink"> demo </a> </p>

<p><a href="http://gelsol.sub.jp/download/bf/v0.1.zip">download</a> ( v0.1.zip / 481,885KB )</p>

<p>ダウンロードした zip ファイルを解凍したフォルダには以下のようなファイルが含まれます。</p>

<blockquote>
<pre>
v0.1
　┗ data.xml
　┗ index.html
　┗ bg.swf
　┗ static
　　┗ expressInstall.swf
　　┗ flashgarelly.js
　　┗ jquery.js
　　┗ styles.css
　　┗ swfobject.js
　┗ garelly
　　┗ 001.jpg
　　┗ 002.jpg
　　┗ 003.jpg
　　┗ 004.jpg
　　┗ 005.jpg
</pre>
</blockquote>

<p>「garelly」フォルダ内の画像はサンプルです。
読み込まれる画像のサイズ、縦横比はすべて異なっていてもかまいません。
画像は、縦横の短い辺を基準に画面サイズにトリミングされた状態で、画面いっぱいに表示されます。</p>

<p>背景のスライドショーに表示される画像の指定は「data.xml」で設定します。</p>

<p>gallery.xml</p>

<div class="source">
<pre class="prettyprint" id="xml">&lt;data&gt;
  &lt;delay&gt;
    &lt;second&gt;5000&lt;/second&gt;
  &lt;/delay&gt;
  &lt;reproduction&gt;
    &lt;loop&gt;0&lt;/loop&gt;
  &lt;/reproduction&gt;
  &lt;photoList&gt;
    &lt;photo&gt;
      &lt;url&gt;gallery/001.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;gallery/002.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;gallery/003.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;gallery/004.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;gallery/005.jpg&lt;/url&gt;
    &lt;/photo&gt;
  &lt;/photoList&gt;
&lt;/data&gt;
</pre>
</div>

<p>photoList エレメントに含まれる photo エレメントがひとつの画像を示します。画像は url エレメントに swf からの相対パスか、あるいは絶対パスで指定することができます。</p>

<p>「data.xml」では、そのほかの設定も可能です。<br />
delay エレメントに含まれる second エレメントで指定している値は、画像が切り替わるまでの時間を設定しています。デフォルトでは 5000 ミリ秒（5秒）となっています。これは、画像は表示されてから次の画像が表示を開始する（フェードインが始まる）までの時間です。</p>

<p>reproduction エレメントに含まれる loop エレメントでは、スライドショーがループをするかどうかを指定できます。<br />

デフォルトの 0 ではスライドショーはループをしません。この値を 1 にするとスライドショーが最後の画像まで行くと最初の画像に戻ってループをし続けます</p>


<p>次は、HTMLコードの設定方法です。head 内に次のコードを追加します。<br />

Flashを表示させるために <a href="http://jquery.com/" target="_blank" class="outlink">jquery</a> と、 <a href="http://code.google.com/p/swfobject/" target="_blank" class="outlink">swfobject</a> を使用しています。</p>

<div class="source">
<pre class="prettyprint" id="html">&lt;link rel="stylesheet" href="static/styles.css"&gt;
&lt;script type="text/javascript" src="static/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/flashgarelly.js"&gt;&lt;/script&gt;
</pre>
</div>

<p>上のコードに続いて、Flash のサイズを指定するためのコードを追加します。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
$(document).ready(function(){
	$("#flash").flashgarelly({
		w: '100%',
		h: '100%'
	});
});
/* ]]&gt; */
&lt;/script&gt;
</pre>
</div>

<p>次に、body 要素内にあるすべての表示コンテンツを id 名「wapper」と設定した div 要素で囲みます。
さらに、 Flash コンテンツを表示するためのコンテナとなるため id 名「flash」と設定した div 要素を id 名「wapper」と設定した div 要素に続いて記述します。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;body&gt;
&lt;div id="wapper"&gt;

&lt;!-- コンテンツの中身 --&gt;

&lt;/div&gt;
&lt;div id="flash"&gt;&lt;/div&gt;
&lt;/body&gt;
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>Banner on Simplest Flash Slideshow （ver2.0） - Trash</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/trash/2011/01/simplest-flash-slideshow-ver20.html" />
    <id>tag:gelsol.sub.jp,2011:/trash//11.110</id>

    <published>2011-01-31T06:31:39Z</published>
    <updated>2011-02-15T09:02:42Z</updated>

    <summary>「Simplest Flash Slideshow ver2.0」は、「ver1.0」に、バナーを追加することができます。フリーの Flash 素材ですので商用も含め、無料で自由にご利用いただけます。</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Flash" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jquery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swfobject" label="swfobject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/trash/">
        <![CDATA[<p>「<a href="http://gelsol.sub.jp/trash/2011/01/simplest-flash-slideshow-ver10.html">Simplest Flash Slideshow ver1.0</a>」にバナーが付きました。</p>

<br />

<p><a href="http://gelsol.sub.jp/demo/simplest_flash_slideshow_v2.0/" target="_blank" class="outlink"> demonstration </a> </p>

<br />

<p>「Simplest Flash Slideshow」はフリーの Flash 素材です。利用規約はバージョン 1.0 に準じます。<br />
下記よりファイルをダウンロードしてご使用ください。</p>

<br />

<p><a href="http://gelsol.sub.jp/download/simplest_flash_slideshow/v2.0.zip">download</a> ( v0.2.zip / 375,865KB )</p>

<br />

<p>ダウンロードした zip ファイルを解凍したフォルダには以下のようなファイルが含まれます。
「images」フォルダ内の画像はサンプルです。</p>

<blockquote>
<pre>v2.0
　┗ banner
　　┗ banner01.png
　　┗ banner02.png
　┗ images
　　┗ photo01.jpg
　　┗ photo02.jpg
　　┗ photo03.jpg
　┗ static
　　┗ expressInstall.swf
　　┗ flashslideshow.js
　　┗ jquery.js
　　┗ swfobject.js
　┗ banner.xml
　┗ slideshow.xml
　┗ index.html
　┗ Main.swf
</pre>
</blockquote>

<p>基本的な設定は「<a href="http://gelsol.sub.jp/trash/2011/01/simplest-flash-slideshow-ver10.html">Simplest Flash Slideshow ver1.0</a>」と同様ですが、読み込むバナー画像を指定するための「banner.xml」の設定をする必要があります。</p>

<br />

<p>banner.xml</p>

<div class="source">
<pre class="prettyprint" id="xml">&lt;data&gt;
  &lt;bannerList&gt;
    &lt;banner&gt;
      &lt;image&gt;banner/banner01.png&lt;/image&gt;
      &lt;url&gt;http://gelsol.sub.jp/index.html&lt;/url&gt;
      &lt;win&gt;0&lt;/win&gt;
    &lt;/banner&gt;
    &lt;banner&gt;
      &lt;image&gt;banner/banner02.png&lt;/image&gt;
      &lt;url&gt;http://gelsol.sub.jp/about/index.html&lt;/url&gt;
      &lt;win&gt;1&lt;/win&gt;
    &lt;/banner&gt;
  &lt;/bannerList&gt;
&lt;/data&gt;
</pre>
</div>

<p>bannerList エレメントに含まれる banner エレメントがひとつのバナーを示します。読み込むバナー画像は image エレメントに swf からの相対パスか絶対パスで指定します。<br />
また url エレメントには、バナーをクリックしたときのリンク先の URL を指定します。<br />
さらに、win エレメントには、リンク先を同一ウィンドウか別ウインドウで開くかどうかを指定できます。<br />
0 を指定した場合は、同一ウインドウ（ _self ）、1 を指定した場合は別ウインドウ（ _blank ）で指定のリンク先を開きます。</p>

<br />

<p>任意のサイズでバナーを作成すると、バナーの高さに合わせて10ピクセルの隙間を開けながら縦に並びます。バナーの数は banner.xml の指定に依存しますが、実際にはバナーのサイズと Flash エリアの高さによって決まります。<br />
バナーの横の表示位置は変更することができません。必ず右寄せで上、右に 10 ピクセルの隙間を開けた位置に表示されます。</p>

<br />

<p>そのほかの詳細な設定は「<a href="http://gelsol.sub.jp/trash/2011/01/simplest-flash-slideshow-ver10.html">Simplest Flash Slideshow ver1.0</a>」をお読みください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Simplest Flash Slideshow ver1.0 - Trash</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/trash/2011/01/simplest-flash-slideshow-ver10.html" />
    <id>tag:gelsol.sub.jp,2011:/trash//11.109</id>

    <published>2011-01-27T06:14:01Z</published>
    <updated>2011-02-20T08:06:47Z</updated>

    <summary>「Simplest Flash Slideshow ver1.0」は、サイズに依存しないシンプルな Flash ギャラリーです。html ファイルや xml ファイルを編集して読み込む画像やギャラリーのサイズを変更することができます。フリーの Flash 素材ですので商用も含め、無料で自由にご利用いただけます。</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Flash" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jquery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swfobject" label="swfobject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/trash/">
        <![CDATA[<p>サイズに依存しないシンプルな Flash スライドショー「Simplest Flash Slideshow」のバージョン 1.0 です。</p>

<br />

<p><a href="http://gelsol.sub.jp/demo/simplest_flash_slideshow_v1.0/" target="_blank" class="outlink"> demonstration </a> </p>

<br />

<p>「Simplest Flash Slideshow」はフリーの Flash 素材です。商用も含め、無料で自由にご利用いただけます。また、リンク・著作権（クレジット）表記、及びご利用に際しての報告はご不要です。（※ 但し、再配布はご遠慮ください。）<br />
下記よりファイルをダウンロードしてご使用ください。</p>

<br />

<p><a href="http://gelsol.sub.jp/download/simplest_flash_slideshow/v1.0.zip"> download </a> ( v1.0.zip / 312,022KB )</p>

<br />

<p>ダウンロードした zip ファイルを解凍したフォルダには以下のようなファイルが含まれます。
「images」フォルダ内の画像はサンプルです。</p>

<blockquote>
<pre>v1.0
　┗ data.xml
　┗ index.html
　┗ Main.swf
　┗ static
　　┗ expressInstall.swf
　　┗ flashslideshow.js
　　┗ jquery.js
　　┗ swfobject.js
　┗ images
　　┗ photo01.jpg
　　┗ photo02.jpg
　　┗ photo03.jpg
</pre>
</blockquote>

<p>※ Flash を表示させるために <a href="http://jquery.com/" target="_blank" class="outlink">jquery</a> と、 <a href="http://code.google.com/p/swfobject/" target="_blank" class="outlink">swfobject</a> を使用しています。</p>

<br />

<p>以下は、「Simplest Flash Slideshow ver1.0」の設置方法を説明します。</p>

<p>スライドショーに表示される画像の指定は「data.xml」で設定します。</p>

<p>data.xml</p>

<div class="source">
<pre class="prettyprint" id="xml">&lt;data&gt;
  &lt;delay&gt;
    &lt;second&gt;5000&lt;/second&gt;
  &lt;/delay&gt;
  &lt;reproduction&gt;
    &lt;loop&gt;0&lt;/loop&gt;
  &lt;/reproduction&gt;
  &lt;photoList&gt;
    &lt;photo&gt;
      &lt;url&gt;images/photo01.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;images/photo02.jpg&lt;/url&gt;
    &lt;/photo&gt;
    &lt;photo&gt;
      &lt;url&gt;images/photo03.jpg&lt;/url&gt;
    &lt;/photo&gt;
  &lt;/photoList&gt;
&lt;/data&gt;
</pre>
</div>

<p>「data.xml」での設定です。<br />
photoList エレメントに含まれる photo エレメントがひとつの画像を示します。この photo エレメントはいくつでも追加することができます。画像は url エレメントに swf からの相対パスか絶対パスで指定することができます。</p>

<br />

<p>delay エレメントに含まれる second エレメントで指定している値は、画像が切り替わるまでの時間を設定しています。デフォルトでは 5000 ミリ秒（5秒）となっています。これは、画像は表示されてから次の画像が表示を開始する（フェードインが始まる）までの時間です。</p>

<br />

<p>reproduction エレメントに含まれる loop エレメントでは、スライドショーがループをするかどうかを指定できます。デフォルトの 0 ではスライドショーはループをしません。この値を 1 にするとスライドショーが最後の画像まで行くと最初の画像に戻ってループをし続けます</p>

<br />

<p>次は、HTMLコードの設定方法です。head 内に次のコードを追加します。</p>

<div class="source">
<pre class="prettyprint" id="html">&lt;script type="text/javascript" src="static/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="static/flashgarelly.js"&gt;&lt;/script&gt;
</pre>
</div>

<p>上のコードに続いて、Flash のサイズを指定するためのコードを追加します。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
$(document).ready(function(){
	$("#flash").flashgarelly({
		w: 'Flash コンテンツの幅（px）',
		h: 'Flash コンテンツの高さ（px）'
	});
});
/* ]]&gt; */
&lt;/script&gt;
</pre>
</div>

<p>Flash のサイズを幅 640 ピクセル、高さ 480 ピクセルに設定したい場合は次のように指定します。このとき「px」は必須です。</p>

<div class="source">
<pre class="prettyprint" id="javascript">w: '640px',
h: '480px'
</pre>
</div>

<p>body 内に次のコードを追加します。このコードを埋め込んだ場所に Flash コンテンツが表示されます。</p>

<div class="source">
<pre class="prettyprint" id="javascript">&lt;div id="flash"&gt;&lt;/div&gt;
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>フルスクリーン表示 - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2010/12/003.html" />
    <id>tag:gelsol.sub.jp,2010:/examples//1.106</id>

    <published>2010-12-30T02:08:02Z</published>
    <updated>2010-12-30T02:12:21Z</updated>

    <summary>Stage クラスの displayState プロパティで、Flash Pla...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Stage" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fullscreen" label="fullscreen" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="stage" label="stage" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[<p>Stage クラスの displayState プロパティで、Flash Player の境界線などを表示させずに swf をフルスクリーンのオンとオフを切り替えることができます。<br />
displayState プロパティには、StageDisplayState クラスの定数で定義される値「FULL_SCREEN」か、「NORMAL」を設定することができます。<br />
displayState プロパティを StageDisplayState.FULL_SCREEN に設定するとフルスクリーンモードがオンになります。</p>

<div class="source">
<pre class="js" name="code">stage.displayState = StageDisplayState.FULL_SCREEN;
</pre>
</div>

<p>displayState プロパティを StageDisplayState.NORMAL に設定すると、フルスクリーンモードを終了させることができます。</p>

<div class="source">
<pre class="js" name="code">stage.displayState = StageDisplayState.NORMAL;
</pre>
</div>


<p>HTML に埋め込まれた swf をブラウザの境界線やメニューなどを表示させずフルスクリーンで表示する事ができますが、フルスクリーンモードを有効にするには、html ページに swf ファイルを埋め込むための object  要素ある allowFullScreen の設定を変更する必要があります。<br />
まず name 属性値 allowFullScreen である param 要素の value の値を true に設定します。</p>

<div class="source">
<pre class="html" name="code">&lt;param name="allowFullScreen" value="true" /&gt;
</pre>
</div>

<p> embed 要素の allowfullscreen パラメータの値も true に設定します。</p>

<div class="source">
<pre class="html" name="code">allowfullscreen="true"
</pre>
</div>


<p>次の例は、「fullscreenButton」ボタンをクリックすると swf をフルスクリーン表示します。「normalButton」ボタンをクリックするとフルスクリーンモードを終了します。</p>

<div class="source">
<pre class="js" name="code">stage.scaleMode = StageScaleMode.NO_SCALE;

fullscreenButton.addEventListener(MouseEvent.CLICK, onFullscreen);
normalButton.addEventListener(MouseEvent.CLICK, onNormal);

function onFullscreen(event:MouseEvent):void {
	stage.displayState = StageDisplayState.FULL_SCREEN;
}

function onNormal(event:MouseEvent):void {
	stage.displayState = StageDisplayState.NORMAL;
}
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>減速イージング - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2010/12/001.html" />
    <id>tag:gelsol.sub.jp,2010:/examples//1.105</id>

    <published>2010-12-23T02:54:02Z</published>
    <updated>2010-12-23T15:09:16Z</updated>

    <summary>アニメーションに加速・減速の効果を付加した、直線的ではない滑らかな動きをイージン...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Animation" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="easing" label="easing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[<p>アニメーションに加速・減速の効果を付加した、直線的ではない滑らかな動きをイージング（ easing ）と呼びます。actionscript でムービークリップなどをアニメーションさせる時、イージングの効果をつけることによってより洗練されたアニメーションに魅せることができます。</p>

<p>目的地に向かって減速していって最後に止まるという減速イージングは比較的簡単に実装できます。</p>

<p>減速する仕組みは、アニメーションをさせていオブジェクトの座標と目的地の座標の差を出し目的地までの距離を取得します。その距離に対して減速係数を掛けることで 1 回に移動距離を算出します。<br />
減速係数は目的地までの距離の何％進むかを決めています。0 であれば全く進まず、1 であれば 1 回で目的地に到達してしまいます。<br />
この求められた値を現在のオブジェクトの座標に加算することで移動アニメーションを起こします。</p>

<p>移動の減速イージングアニメーションの計算は下記のようになります。</p>

<div class="source">
<pre class="js" name="code">
オブジェクトの座標 +=（ 目的地の座標 - オブジェクトの座標 ) * 減速係数
</pre>
</div>

<p>目的地のX座標を targetX 、Y座標を targetY とし、アニメーションをさせていオブジェクトを mc とします。減速係数を friction とすると、減速イージングアニメーションを実現するには次のようなコードなります。</p>

<div class="source">
<pre class="js" name="code">
mc.x += (targetX - mc.x) * friction;
mc.y += (targetY - mcp.y) * friction;
</pre>
</div>

<p>friction の値は 0 &lt; friction &lt; 1 の範囲で設定しなければなりません。</p>

<p>次の例は、MovieClip クラスのインスタンス mc を目的の座標位置 (520, 200) まで減速しながら移動していくアニメーションを設定しています。</p>

<div class="source">
<pre class="js" name="code">
var friction:Number = 0.3;//  0 &lt; friction &lt; 1 

var targetX:Number = 520;
var targetY:Number = 200;

mc.addEventListener(Event.ENTER_FRAME,easing);

function easing(event:Event):void {
	var diffX:Number = (targetX - event.target.x) * friction;
	var diffY:Number = (targetY - event.target.y) * friction;
	event.target.x += diffX;
	event.target.y += diffY;
	if (Math.abs(diffX) &lt;= 0.1 &amp;&amp; Math.abs(diffY) &lt;= 0.1) {
		event.target.x=targetX;
		event.target.y=targetY;

		event.target.removeEventListener(Event.ENTER_FRAME,easing);
	}
}
</pre>
</div>

<br />

<p>次の例は、MovieClip クラスのインスタンス mc が減速イージングアニメーションしながらマウスに追従するサンプルコードです。</p>

<div class="source">
<pre class="js" name="code">
var friction:Number = 0.3;//  0 &lt; friction &lt; 1 

mc.addEventListener(Event.ENTER_FRAME,mouseTracer);

function mouseTracer(event:Event):void {
	var diffX:Number = (mouseX - event.target.x) * friction;
	var diffY:Number = (mouseY - event.target.y) * friction;
	event.target.x += diffX;
	event.target.y += diffY;
	if (Math.abs(diffX) &lt;= 0.1 &amp;&amp; Math.abs(diffY) &lt;= 0.1) {
		event.target.x = mouseX;
		event.target.y = mouseY;

		event.target.removeEventListener(Event.ENTER_FRAME,mouseTracer);
	}
}
</pre>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>css3 background-clip プロパティ - css</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/css/2010/11/003.html" />
    <id>tag:gelsol.sub.jp,2010:/css//3.96</id>

    <published>2010-11-18T06:24:40Z</published>
    <updated>2011-02-11T05:53:43Z</updated>

    <summary>   background-clip プロパティは、背景の表示範囲を指定するプロ...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="background" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="background" label="background" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="backgroundclip" label="background-clip" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="border" label="border" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="content" label="content" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="padding" label="padding" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/css/">
        <![CDATA[
<style type="text/css">
<!--
.sampleBox {

}

.background-clip-padding {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-clip: padding;
	-moz-background-clip: padding;
	-webkit-background-clip: padding;
	-o-background-clip: padding;
	border: dashed 10px #666;
}

.background-clip-border {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-clip: border;
	-moz-background-clip: border;
	-webkit-background-clip: border;
	-o-background-clip: border;
	border: dashed 10px #666;
}

.background-clip-content {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-clip: content;
	-moz-background-clip: content;
	-webkit-background-clip: content;
	-o-background-clip: content;
	border: dashed 10px #666;
}
--> 
</style>

<p>background-clip プロパティは、背景の表示範囲を指定するプロパティです。</p>

<p>デフォルトで背景が表示されるのは、罫線を含むコンテンツ及びパディングの範囲と定義されています。background-clip プロパティはこの範囲を変更することができます。</p>

<br />

<p>次の例は、background-clip 値に padding を指定しています。<br />
値に padding が指定された場合、背景をパディングボックスに対して相対的に適用します。背景画像はパディングを含めた左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">.background-clip-padding {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-clip: padding;
	-moz-background-clip: padding; /* Firefox用 */
	-webkit-background-clip: padding; /* Safari,Google Chrome用 */
	-o-background-clip: padding; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に padding が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-clip-padding">値に padding が指定された場合、背景をパディングボックスに対して相対的に適用します。背景画像はパディングを含めた左上を基準にして表示されます。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-clip 値に border を指定しています。<br />
値に border が指定された場合、背景をボーダーボックスに対して相対的に適用します。背景画像はボーダーを含めた左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">.background-clip-border {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-clip: border;
	-moz-background-clip: border; /* Firefox用 */
	-webkit-background-clip: border; /* Safari,Google Chrome用 */
	-o-background-clip: border; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に border が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-clip-border">値に border が指定された場合、背景画像をボーダーボックスに対して相対的に適用します。背景はボーダーを含めた左上を基準にして表示されます。</p>
</div> <!--end : sampleBox -->

<br />
<!--
<p>次の例は、background-clip 値に content を指定しています。<br / / / / / />
値に content が指定された場合、背景をコンテントボックスに対して相対的に適用します。背景画像はパディングを含めず左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">
.background-clip-content {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-clip: content;
	-moz-background-clip: content; /* Firefox用 */
	-webkit-background-clip: content; /* Safari,Google Chrome用 */
	-o-background-clip: content; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に content が指定された場合の表示サンプルです。</p>

<br / />

<div class="sampleBox">
<p class="background-clip-content">値に content が指定された場合、背景をコンテントボックスに対して相対的に適用します。背景画像はパディングを含めず左上を基準にして表示されます。</p>
</div> --> <!--end : sampleBox -->]]>
        
    </content>
</entry>

<entry>
    <title>css3 background-origin プロパティ - css</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/css/2010/11/002.html" />
    <id>tag:gelsol.sub.jp,2010:/css//3.95</id>

    <published>2010-11-18T06:20:52Z</published>
    <updated>2011-02-11T05:52:36Z</updated>

    <summary>   background-origin プロパティは、背景画像の表示位置の基準...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="background" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="background" label="background" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="backgroundorigin" label="background-origin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="border" label="border" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="content" label="content" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="padding" label="padding" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/css/">
        <![CDATA[
<style type="text/css">
<!--
.sampleBox {
	
}

.background-origin-padding {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-repeat: no-repeat;
	background-origin: padding;
	-moz-background-origin: padding;
	-webkit-background-origin: padding;
	-o-background-origin: padding;
	border: dashed 10px #666;
}

.background-origin-border {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-repeat: no-repeat;
	background-origin: border;
	-moz-background-origin: border;
	-webkit-background-origin: border;
	-o-background-origin: border;
	border: dashed 10px #666;
}

.background-origin-content {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-repeat: no-repeat;
	background-origin: content;
	-moz-background-origin: content;
	-webkit-background-origin: content;
	-o-background-origin: content;
	border: dashed 10px #666;
}
--> 
</style>

<p>background-origin プロパティは、背景画像の表示位置の基準点を指定するプロパティです。</p>

<p>背景画像は、標準ではパディングを含めた左上を基準点「0 0」として表示されますが、background-originプロパティを利用すると罫線やコンテンツ部分の左上を基点にすることができます。</p>

<p>background-attachmentプロパティの値にfixedが指定されている場合には、background-originプロパティの指定は無効となります。</p>

<br />

<p>次の例は、background-origin 値に padding-box を指定しています。<br />
値に padding-box が指定された場合、背景をパディングボックスに対して相対的に適用します。背景画像はパディングを含めた左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">.background-origin-padding {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-repeat: no-repeat;
	background-origin: padding;
	-moz-background-origin: padding; /* Firefox用 */
	-webkit-background-origin: padding; /* Safari,Google Chrome用 */
	-o-background-origin: padding; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に padding-box が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-origin-padding">値に padding-box が指定された場合、背景をパディングボックスに対して相対的に適用します。背景画像はパディングを含めた左上を基準にして表示されます。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-origin 値に border-box を指定しています。<br />
値に border-box が指定された場合、背景をボーダーボックスに対して相対的に適用します。背景画像はボーダーを含めた左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">.background-origin-border {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-repeat: no-repeat;
	background-origin: border;
	-moz-background-origin: border; /* Firefox用 */
	-webkit-background-origin: border; /* Safari,Google Chrome用 */
	-o-background-origin: border; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に border-box が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-origin-border">値に border-box が指定された場合、背景画像をボーダーボックスに対して相対的に適用します。背景はボーダーを含めた左上を基準にして表示されます。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-origin 値に content-box を指定しています。<br />
値に content-box が指定された場合、背景をコンテントボックスに対して相対的に適用します。背景画像はパディングを含めず左上を基準にして表示されます。</p>

<div class="source">
<pre class="css" name="code">.background-origin-content {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-repeat: no-repeat;
	background-origin: content;
	-moz-background-origin: content; /* Firefox用 */
	-webkit-background-origin: content; /* Safari,Google Chrome用 */
	-o-background-origin: content; /* Opera用 */
	border: dashed 10px #666;
}
</pre>
</div>

<p>値に content-box が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-origin-content">値に content-box が指定された場合、背景をコンテントボックスに対して相対的に適用します。背景画像はパディングを含めず左上を基準にして表示されます。</p>
</div> <!--end : sampleBox -->]]>
        
    </content>
</entry>

<entry>
    <title>css3 background-size プロパティ - css</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/css/2010/11/001.html" />
    <id>tag:gelsol.sub.jp,2010:/css//3.94</id>

    <published>2010-11-18T06:09:40Z</published>
    <updated>2011-02-11T05:51:05Z</updated>

    <summary>   background-size プロパティは、背景画像のサイズを指定するプ...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="background" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="background" label="background" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="backgroundsize" label="background-size" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="contain" label="contain" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cover" label="cover" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/css/">
        <![CDATA[<style type="text/css">
<!--
.sampleBox {
	
}

.background-size-contain {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-size: contain;
	-moz-background-size: contain;
	-webkit-background-size: contain;
	-o-background-size: contain;
}

.background-size-cover {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-size: cover;
	-moz-background-size: cover;
	-webkit-background-size: cover;
	-o-background-size: cover;
}

.background-size-pxels {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-size: 20px 20px;
	-moz-background-size: 20px 20px;
	-webkit-background-size: 20px 20px;
	-o-background-size: 20px 20px;
}

.background-size-percentage {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-size: 50% 50%;
	-moz-background-size: 50% 50%;
	-webkit-background-size: 50% 50%;
	-o-background-size: 50% 50%;
}

.background-size-auto {
	padding: 20px;
	background-image: url("http://gelsol.sub.jp/css/upload/grid.gif");
	background-size: 20% auto;
	-moz-background-size: 20% auto;
	-webkit-background-size: 20% auto;
	-o-background-size: 20% auto;
}
--> 
</style>

<p>background-size プロパティは、背景画像のサイズを指定するプロパティです。</p>
<p>下記のサンプルの背景画像には次の画像が使用されています。</p>

<p><img src="images/grid.gif" alt="背景画像サンプル" /></p>

<br />

<p>次の例は、background-size 値に contain を指定しています。<br />
値に contain が指定された場合、画像の縦横比は保持したまま背景領域に収まる最大サイズになるように背景画像を拡大縮小します。</p>

<div class="source">
<pre class="css" name="code">.background-size-contain {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-size: contain;
	-moz-background-size: contain; /* Firefox用 */
	-webkit-background-size: contain; /* Safari,Google Chrome用 */
	-o-background-size: contain; /* Opera用 */
}
</pre>
</div>

<p>値に contain が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-size-contain">値に contain が指定された場合、画像の縦横比は保持したまま背景領域に収まる最大サイズになるように背景画像を拡大縮小します。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-size 値に cover を指定しています。<br />
値に cover が指定された場合、画像の縦横比は保持したまま背景領域を完全に覆う最小サイズになるように背景画像を拡大縮小します。</p>

<div class="source">
<pre class="css" name="code">.background-size-contain {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-size: cover;
	-moz-background-size: cover; /* Firefox用 */
	-webkit-background-size: cover; /* Safari,Google Chrome用 */
	-o-background-size: cover; /* Opera用 */
}
</pre>
</div>

<p>指定値に cover が指定された場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-size-cover">値に cover が指定された場合、画像の縦横比は保持したまま背景領域を完全に覆う最小サイズになるように背景画像を拡大縮小します。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-size に背景画像の幅・高さを数値で指定しています。<br />
値に指定する背景画像の大きさは、横幅と高さを半角スペースで区切って指定します。1 つ目の値が横幅、2 つ目の値が高さです。背景画像の大きさを 20×20 ピクセルと指定しています。</p>

<div class="source">
<pre class="css" name="code">.background-size-contain {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-size:  20px 20px;
	-moz-background-size:  20px 20px; /* Firefox用 */
	-webkit-background-size:  20px 20px; /* Safari,Google Chrome用 */
	-o-background-size:  20px 20px; /* Opera用 */
}
</pre>
</div>

<p>background-size に背景画像の幅・高さを数値で指定した場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-size-pxels">値に指定する背景画像の大きさは、横幅と高さを半角スペースで区切って指定します。1 つ目の値が横幅、2 つ目の値が高さです。背景画像の大きさを 20×20 ピクセルと指定しています。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-size にパーセンテージで指定しています。<br />
値には、背景領域に対する背景画像の幅・高さのパーセンテージを指定します。</p>

<div class="source">
<pre class="css" name="code">.background-size-contain {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-size: 50% 50%;
	-moz-background-size: 50% 50%; /* Firefox用 */
	-webkit-background-size: 50% 50%; /* Safari,Google Chrome用 */
	-o-background-size: 50% 50%; /* Opera用 */
}
</pre>
</div>

<p>background-size にパーセンテージで指定した場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-size-percentage">背景領域に対する背景画像の幅・高さのパーセンテージを指定します。</p>
</div> <!--end : sampleBox -->

<br />

<p>次の例は、background-size 値に auto を指定しています。<br />
画像の縦横比を維持して表示するには、横幅または高さのどちらかの大きさを数値あるいはパーセンテージで指定し、もう一方を「 auto 」と指定します。この値がデフォルト値です。</p>

<div class="source">
<pre class="css" name="code">.background-size-contain {
	padding: 20px;
	background-image: url("images/grid.gif");
	background-size: 20% auto;
	-moz-background-size: 20% auto; /* Firefox用 */
	-webkit-background-size: 20% auto; /* Safari,Google Chrome用 */
	-o-background-size: 20% auto; /* Opera用 */
}
</pre>
</div>

<p>background-size 値に auto を指定した場合の表示サンプルです。</p>

<br />

<div class="sampleBox">
<p class="background-size-auto">画像の縦横比を維持して表示するには、横幅または高さのどちらかの大きさを数値あるいはパーセンテージで指定し、もう一方を「 auto 」と指定します。</p>
</div> <!--end : sampleBox -->]]>
        
    </content>
</entry>

<entry>
    <title>オブジェクトの重なり判定 - actionscript</title>
    <link rel="alternate" type="text/html" href="http://gelsol.sub.jp/examples/2010/11/001.html" />
    <id>tag:gelsol.sub.jp,2010:/examples//1.93</id>

    <published>2010-11-15T02:57:50Z</published>
    <updated>2010-11-23T03:12:26Z</updated>

    <summary>ドラッグしているオブジェクトが目的の場所にドロップできているかを判断するときなど...</summary>
    <author>
        <name>Shunji Tabata</name>
        
    </author>
    
        <category term="Rectangle" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="containsrect" label="containsRect" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="getbounds" label="getBounds" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="intersects" label="intersects" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rectangle" label="Rectangle" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="startdrag" label="startDrag" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="stopdrag" label="stopDrag" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://gelsol.sub.jp/examples/">
        <![CDATA[<p>ドラッグしているオブジェクトが目的の場所にドロップできているかを判断するときなど、オブジェクト同士の重なりを判定をしたい場合があります。</p>


<p>Rectangle オブジェクトを使って、比較したいオブジェクトの矩形範囲を取得し、重なり合う部分があるか、あるいは一方のオブジェクトの中に完全に入っているかどうかを調べることができます。<br />
Rectangle オブジェクトは、単に矩形領域を定義するだけです。Rectangle オブジェクトには、位置（左上隅の x 座標と y 座標で定義される）と、width プロパティ、height プロパティがあります。</p>

<p>2 つの矩形領域に重なり合う部分があるかどうかを調べるには、Rectangle.intersects() メソッドを使用します。</p>


<dl class="method">
<dt>Rectangle.intersects(rect:Rectangle):Boolean</dt>
<dd>rect パラメータで指定されたオブジェクトがこの Rectangle オブジェクトと交差するかどうかを判別します。</dd>
<dd>パラメータ：<br />
&nbsp; rect:Rectangle &nbsp; この Rectangle オブジェクトと比較する Rectangle オブジェクト</dd>
<dd>戻り値：<br />
&nbsp; 指定されたオブジェクトがこの Rectangle オブジェクトと交差する場合は true を返します。<br />
&nbsp; 交差しない場合は false を返します。</dd>
</dl>

<p>次の例は、ステージに配置されている MovieClip のインスタンスである mc1 、mc2 が重なりあっているかどうかを判定します。</p>

<div class="source">
<pre class="js" name="code">var mc1Bounds:Rectangle = mc1.getBounds(stage);
var mc2Bounds:Rectangle = mc2.getBounds(stage);

if (mc1Bounds.intersects(mc2Bounds)) {
	trace("intersect");
}
</pre>
</div>


<p>一方の矩形領域がもう一方の矩形領域に完全に含まれるかどうかを調べるには、Rectangle.containsRect() メソッドを使用します。</p>


<dl class="method">
<dt>Rectangle.containsRect(rect:Rectangle):Boolean</dt>
<dd>rect パラメータで指定された Rectangle オブジェクトがこの Rectangle オブジェクト内にあるか（オブジェクトの境界内に完全に収まる）どうかを判別します。</dd>
<dd>パラメータ：<br />
&nbsp; rect:Rectangle &nbsp; この Rectangle オブジェクトと比較する Rectangle オブジェクト</dd>
<dd>戻り値：<br />
&nbsp; 指定した Rectangle オブジェクトがこの Rectangle オブジェクトに含まれる場合は true を返します。<br />
&nbsp; 含まれない場合は false を返します。</dd>
</dl>



<p>次の例は、ステージに配置されている MovieClip のインスタンスである mc1 に mc2 が完全に含まれているかどうかを判定します。</p>


<div class="source">
<pre class="js" name="code">var mc1Bounds:Rectangle = mc1.getBounds(stage);
var mc2Bounds:Rectangle = mc2.getBounds(stage);

if (mc1Bounds.containsRect(mc2Bounds)) {
	trace("contain");
}
</pre>
</div>



<p>次の例は、ドロップした Sprite オブジェクト item_mc が Sprite オブジェクト frame_mc に重なっているか、あるいは完全に含まれているかを判定します。</p>

<div class="source">
<pre class="js" name="code">var item_mc:Sprite = new Sprite();
item_mc.x = 20;
item_mc.y = 20;

item_mc.graphics.beginFill(0xff0000);
item_mc.graphics.moveTo(0, 0);
item_mc.graphics.lineTo(100, 0);
item_mc.graphics.lineTo(100, 100);
item_mc.graphics.lineTo(0, 100);
item_mc.graphics.endFill();

var frame_mc:Sprite = new Sprite();
frame_mc.x = 200;
frame_mc.y = 50;


frame_mc.graphics.beginFill(0x000000);
frame_mc.graphics.moveTo(0, 0);
frame_mc.graphics.lineTo(300, 0);
frame_mc.graphics.lineTo(300, 300);
frame_mc.graphics.lineTo(0, 300);
frame_mc.graphics.endFill();

addChild(frame_mc);
addChild(item_mc);


item_mc.addEventListener (MouseEvent.MOUSE_DOWN, onStartDrag);

function onStartDrag (eventObj:MouseEvent):void {
	item_mc.startDrag (false);
	stage.addEventListener (MouseEvent.MOUSE_UP, onStopDrag);
}

function onStopDrag (eventObj:MouseEvent):void {
	item_mc.stopDrag ();
	collisionDetect ();
}

function collisionDetect ():void {
	var frameBounds:Rectangle = frame_mc.getBounds(stage);
	var itemBounds:Rectangle = item_mc.getBounds(stage);

	if (frameBounds.containsRect(itemBounds)) {
		trace("contains!");
	}

	if (frameBounds.intersects(itemBounds)) {
		trace("intersects!");
	}
}
</pre>
</div>]]>
        
    </content>
</entry>

</feed>

