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

<channel>
	<title>blog Boreal Kiss</title>
	<atom:link href="http://blog.boreal-kiss.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.boreal-kiss.com</link>
	<description>FLASHとブログパーツの作成メモ</description>
	<pubDate>Sat, 17 May 2008 06:45:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>ja</language>
			<item>
		<title>[FLASH 10]My First Astro</title>
		<link>http://blog.boreal-kiss.com/2008/05/17154234.html</link>
		<comments>http://blog.boreal-kiss.com/2008/05/17154234.html#comments</comments>
		<pubDate>Sat, 17 May 2008 06:42:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[FLASH 10]]></category>

		<guid isPermaLink="false">http://blog.boreal-kiss.com/?p=225</guid>
		<description><![CDATA[数日前にFlash Player 10(Astro)のベータ版が発表されて新機能や新クラスの話題でFlash界隈は盛り上がってるみたい。DisplayObjectのプロパティに新しくz軸が追加されて3D描画が可能になった。とはいっても今まで自分で設定しなくちゃいけなかった焦点距離の計算が省けただけなのかな？単純にdrawRect()するだけではdepth sortingやbackface cullingまではしてくれないみたい。僕も色々調べ中。とりあえずFlash Player 10 で 3Dしてみた (Unknown Quality)を参考に3Dやってみた。参考元はFlex SDK 3.0.1より前のものを使用しているのでパブリッシュに色々トリック(astro::って部分等)を使ってるみたいだけど、現在はFlash Player 10用にパブリッシュできるFlex SDK 3.0.1.xが配布されているので気にしなくてよい。

[FLASH 10]My First Astro (再生にはFlash Plaeyer 10が必要)
[関連リンク]

Flash Player 10の新機能デモ (English)
Adobe Labs - Flash Player 10 Feature Demos and Videos
Flash Player 10の新機能解説(日本語)
akihiro kamijo: Flash Player 10 beta 公開
Flex SDK 3.0.1.xのダウンロード(English)
Targeting Flash Player 10 Beta with Flex SDK 3.0.x
Flex SDK 3.0.1.xの設定(日本語)
FlashPlayer/10/API [...]]]></description>
			<content:encoded><![CDATA[<p>数日前にFlash Player 10(Astro)のベータ版が発表されて新機能や新クラスの話題でFlash界隈は盛り上がってるみたい。DisplayObjectのプロパティに新しくz軸が追加されて3D描画が可能になった。とはいっても今まで自分で設定しなくちゃいけなかった焦点距離の計算が省けただけなのかな？単純にdrawRect()するだけではdepth sortingやbackface cullingまではしてくれないみたい。僕も色々調べ中。とりあえず<a href="http://un-q.net/2008/05/flash_player_10_3d.html" target="_blank">Flash Player 10 で 3Dしてみた (Unknown Quality)</a>を参考に3Dやってみた。参考元はFlex SDK 3.0.1より前のものを使用しているのでパブリッシュに色々トリック(astro::って部分等)を使ってるみたいだけど、現在はFlash Player 10用にパブリッシュできるFlex SDK 3.0.1.xが配布されているので気にしなくてよい。</p>
<p><a href="http://boreal-kiss.com/flash/ex/32/" target="_blank"><img src="http://boreal-kiss.com/flash/ex/32/myfirstastro.gif" title="My First Astro" alt="[FLASH 10]My First Astro"/></a><br />
<a href="http://boreal-kiss.com/flash/ex/32/" target="_blank">[FLASH 10]My First Astro</a> (再生には<a href="http://labs.adobe.com/downloads/flashplayer10.html" target="_blank">Flash Plaeyer 10</a>が必要)</p>
<p>[関連リンク]</p>
<ul>
<li>Flash Player 10の新機能デモ (English)</li>
<p><a href="http://labs.adobe.com/technologies/flashplayer10/demos/" target="_blank">Adobe Labs - Flash Player 10 Feature Demos and Videos</a></p>
<li>Flash Player 10の新機能解説(日本語)</li>
<p><a href="http://weblogs.macromedia.com/akamijo/archives/2008/05/flash_player_10.html" target="_blank">akihiro kamijo: Flash Player 10 beta 公開</a></p>
<li>Flex SDK 3.0.1.xのダウンロード(English)</li>
<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x" target="_blank">Targeting Flash Player 10 Beta with Flex SDK 3.0.x</a></p>
<li>Flex SDK 3.0.1.xの設定(日本語)</li>
<p><a href="http://wiki.libspark.org/wiki/FlashPlayer/10/API" target="_blank">FlashPlayer/10/API - Spark project</a></p>
<li>Flex SDK 3.0.1.xの設定ビデオチュートリアル(English)</li>
<p><a href="http://theflashblog.com/?p=383" target="_blank">The Flash Blog &raquo; Video Tutorial on Compiling for Flash Player 10</a></p>
<li>Flash 10 drawing APIの詳細な解説(English)</li>
<p><a href="http://www.senocular.com/flash/tutorials/flash10drawingapi/" target="_blank">senocular.com Tutorial: Flash Player 10 Drawing API page 1</a>
</ul>
<p>一応ソースコード。rotationXとかあるよね。</p>
<pre>
<span style="color:#000099;">package</span> {
    <span style="color:#990000;">/*
    * Requires Flex SDK 3.0.1.x to be compiled
    */</span>
    <span style="color:#000099;">import</span> flash.display.Shape;
    <span style="color:#000099;">import</span> flash.display.Sprite;
    <span style="color:#000099;">import</span> flash.events.Event;

    [SWF(width=<span style="color:#009900;">&quot;550&quot;</span>,height=<span style="color:#009900;">&quot;400&quot;</span>,backgroundColor=<span style="color:#009900;">&quot;0&#215;0&quot;</span>)]

    <span style="color:#000099;">public</span> <span style="color:#000099;">class</span> Main <span style="color:#000099;">extends</span> Sprite{

        <span style="color:#990000;">//size of the box</span>
        <span style="color:#000099;">private</span> <span style="color:#000099;">const</span> SIZE:<span style="color:#000099;">Number</span> = <span style="color:#009900;">100</span>;

        <span style="color:#000099;">public</span> <span style="color:#000099;">function</span> Main(){
            <span style="color:#000099;">var</span> spr:Sprite = <span style="color:#000099;">new</span> Sprite();
            spr.x = stage.stageWidth/<span style="color:#009900;">2</span>;
            spr.y = stage.stageHeight/<span style="color:#009900;">2</span>;
            addChild(spr);
            makeCube(spr,<span style="color:#009900;">0</span>x005885);
            spr.addEventListener(Event.ENTER_FRAME,rotate);
        }

        <span style="color:#000099;">private</span> <span style="color:#000099;">function</span> makeCube(s:Sprite,c:uint):<span style="color:#000099;">void</span>{
            <span style="color:#990000;">//front</span>
            <span style="color:#000099;">var</span> f1:Shape = <span style="color:#000099;">new</span> Shape();
            f1.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f1.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f1.x = -SIZE/<span style="color:#009900;">2</span>;
            f1.y = -SIZE/<span style="color:#009900;">2</span>;
            f1.z = -SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f1);

            <span style="color:#990000;">//back</span>
            <span style="color:#000099;">var</span> f2:Shape = <span style="color:#000099;">new</span> Shape();
            f2.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f2.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f2.x = -SIZE/<span style="color:#009900;">2</span>;
            f2.y = -SIZE/<span style="color:#009900;">2</span>;
            f2.z = SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f2);

            <span style="color:#990000;">//left</span>
            <span style="color:#000099;">var</span> f3:Shape = <span style="color:#000099;">new</span> Shape();
            f3.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f3.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f3.rotationY = <span style="color:#009900;">90</span>;
            f3.x = -SIZE/<span style="color:#009900;">2</span>;
            f3.y = -SIZE/<span style="color:#009900;">2</span>;
            f3.z = SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f3);

            <span style="color:#990000;">//right</span>
            <span style="color:#000099;">var</span> f4:Shape = <span style="color:#000099;">new</span> Shape();
            f4.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f4.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f4.rotationY = <span style="color:#009900;">90</span>;
            f4.x = SIZE/<span style="color:#009900;">2</span>;
            f4.y = -SIZE/<span style="color:#009900;">2</span>;
            f4.z = SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f4);

            <span style="color:#990000;">//top</span>
            <span style="color:#000099;">var</span> f5:Shape = <span style="color:#000099;">new</span> Shape();
            f5.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f5.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f5.rotationX = <span style="color:#009900;">90</span>;
            f5.x = -SIZE/<span style="color:#009900;">2</span>;
            f5.y = -SIZE/<span style="color:#009900;">2</span>;
            f5.z = -SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f5);

            <span style="color:#990000;">//bottom</span>
            <span style="color:#000099;">var</span> f6:Shape = <span style="color:#000099;">new</span> Shape();
            f6.graphics.lineStyle(<span style="color:#009900;">2</span>,c);
            f6.graphics.drawRect(<span style="color:#009900;">0</span>,<span style="color:#009900;">0</span>,SIZE,SIZE);
            f6.rotationX = <span style="color:#009900;">90</span>;
            f6.x = -SIZE/<span style="color:#009900;">2</span>;
            f6.y = SIZE/<span style="color:#009900;">2</span>;
            f6.z = -SIZE/<span style="color:#009900;">2</span>;
            s.addChild(f6);
        }

        <span style="color:#000099;">private</span> <span style="color:#000099;">function</span> rotate(e:Event):<span style="color:#000099;">void</span>{
            <span style="color:#000099;">const</span> DUMP:<span style="color:#000099;">Number</span> = <span style="color:#009900;">0.25</span>;
            <span style="color:#000099;">var</span> dx:<span style="color:#000099;">Number</span> = (mouseX - stage.stageWidth/<span style="color:#009900;">2</span>);
            <span style="color:#000099;">var</span> dy:<span style="color:#000099;">Number</span> = (mouseY - stage.stageHeight/<span style="color:#009900;">2</span>);
            e.target.rotationY = -dx*DUMP;
            e.target.rotationX = dy*DUMP;
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.boreal-kiss.com/2008/05/17154234.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Papervision3D]Papervision3D2.0のドキュメント発見</title>
		<link>http://blog.boreal-kiss.com/2008/05/14023825.html</link>
		<comments>http://blog.boreal-kiss.com/2008/05/14023825.html#comments</comments>
		<pubDate>Tue, 13 May 2008 17:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://blog.boreal-kiss.com/?p=224</guid>
		<description><![CDATA[Papervision3D2.0(Great White)の割と最近のドキュメントがアップされてる(2008/04/22)。2.0は現段階でアルファ版でオフィシャルなドキュメンが出るのは当分先っぽかったのでたすかった。早速Fluidで専用ブラウザー化してドックに追加しといた。Fluid大活躍！Great White API
[関連リンク]
public var むらけん:Flasher; ASDoc GrateWhite(PaperVision3D2.0)
]]></description>
			<content:encoded><![CDATA[<p>Papervision3D2.0(Great White)の割と最近のドキュメントがアップされてる(2008/04/22)。2.0は現段階でアルファ版でオフィシャルなドキュメンが出るのは当分先っぽかったのでたすかった。早速Fluidで専用ブラウザー化してドックに追加しといた。Fluid大活躍！<a href="http://www.muraken.biz/asdoc/gratewhite/" target="_blank">Great White API</a></p>
<p>[関連リンク]<br />
<a href="http://www.muraken.biz/?p=108" target="_blank">public var むらけん:Flasher; ASDoc GrateWhite(PaperVision3D2.0)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boreal-kiss.com/2008/05/14023825.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Mac]FluidのサムネイルプラグインでMuxtape閲覧が快適に</title>
		<link>http://blog.boreal-kiss.com/2008/05/13043925.html</link>
		<comments>http://blog.boreal-kiss.com/2008/05/13043925.html#comments</comments>
		<pubDate>Mon, 12 May 2008 19:39:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[Muxtape]]></category>

		<guid isPermaLink="false">http://blog.boreal-kiss.com/?p=221</guid>
		<description><![CDATA[例えばFirefoxで複数のwebページを閲覧する時に、「その中の1ページが死ぬほど重い → Firefox全体が応答しなくなり強制終了 → Firefoxを立ち上げ直し」というのを繰り返すことがあって何かいい方法がないかなーと思ってた。Fluidは、そういう「巻き込み事故」を避けるためにブラウザーを複数のアプリケーションにしてしまうソフト。例えばTwitter専用のブラウザーを簡単に作成できる。
ところでFluidにはサムネイルプラグインというものが標準装備されている。閲覧中のwebページ内のリンク先のスクリーンショットをカバーフロー(iTunesのジャケットギャラリー表示のようなやつ)で表示してくれるものなんだけど、これ名前の通りサムネイルで一括表示するので、例えばはてなブックマークのホットエントリのリンク先をサムネイルで表示したところで文字が小さすぎて読めないためあまり実用的ではない(ホットエントリーのサムネイル表示方法は[N] 「Fluid」のサムネイルプラグインを試したを参照)。文字がでかくてサムネイル表示で十分なwebページ集というとMuxtapeってわけですよ！
Muxtapeはトップにユーザーのmixtapeがランダム表示されるのだけど、これがユーザー名のみの表示でmixtape中身を見るためには一々各ユーザーページを確認しないといけない。ところがMuxtapeのユーザーページは文字が大きくてシンプルな作りをしているのでFluidのサムネイルプラグインで一括表示・チェックするにはもってこいなわけ。僕は今までどんなジャンルのmixtapeかもわからないユーザーのリンク先をクリックしてまで中身を確認したことがなかったので、このFluidの使い方は画期的なんじゃないかなーと思ってる。具体的な設定方法はFluid x Muxtape = すばらしい &#187; www.slack77.netに書いてある(動画付き。ただししゃべり方が鼻につく)。動画元のコメント欄も「Macが欲しい」という感じになってた。またFlickrにはFluidで作成したアプリケーション用のアイコンがたくさん配布されているのでMacユーザーはこの機会に是非Fluidを活用してみてはいかがでしょうか。

[関連リンク]
MOONGIFT: &#187; 専用Webアプリケーションを手軽に「Fluid」:オープンソースを毎日紹介
]]></description>
			<content:encoded><![CDATA[<p>例えばFirefoxで複数のwebページを閲覧する時に、「その中の1ページが死ぬほど重い → Firefox全体が応答しなくなり強制終了 → Firefoxを立ち上げ直し」というのを繰り返すことがあって何かいい方法がないかなーと思ってた。<a href="http://fluidapp.com/" target="_blank">Fluid</a>は、そういう「巻き込み事故」を避けるためにブラウザーを複数のアプリケーションにしてしまうソフト。例えばTwitter専用のブラウザーを簡単に作成できる。</p>
<p>ところでFluidにはサムネイルプラグインというものが標準装備されている。閲覧中のwebページ内のリンク先のスクリーンショットをカバーフロー(iTunesのジャケットギャラリー表示のようなやつ)で表示してくれるものなんだけど、これ名前の通りサムネイルで一括表示するので、例えばはてなブックマークのホットエントリのリンク先をサムネイルで表示したところで文字が小さすぎて読めないためあまり実用的ではない(ホットエントリーのサムネイル表示方法は<a href="http://netafull.net/macsoft/025501.html" target="_blank">[N] 「Fluid」のサムネイルプラグインを試した</a>を参照)。文字がでかくてサムネイル表示で十分なwebページ集というと<a href="http://muxtape.com" target="_blank">Muxtape</a>ってわけですよ！</p>
<p>Muxtapeはトップにユーザーのmixtapeがランダム表示されるのだけど、これがユーザー名のみの表示でmixtape中身を見るためには一々各ユーザーページを確認しないといけない。ところがMuxtapeのユーザーページは文字が大きくてシンプルな作りをしているのでFluidのサムネイルプラグインで一括表示・チェックするにはもってこいなわけ。僕は今までどんなジャンルのmixtapeかもわからないユーザーのリンク先をクリックしてまで中身を確認したことがなかったので、このFluidの使い方は画期的なんじゃないかなーと思ってる。具体的な設定方法は<a href="http://www.slack77.net/2008/04/23/154/" target="_blank">Fluid x Muxtape = すばらしい &raquo; www.slack77.net</a>に書いてある(動画付き。ただししゃべり方が鼻につく)。動画元のコメント欄も「Macが欲しい」という感じになってた。また<a href="http://flickr.com/groups/fluid_icons/pool/" target="_blank">Flickr</a>にはFluidで作成したアプリケーション用のアイコンがたくさん配布されているのでMacユーザーはこの機会に是非Fluidを活用してみてはいかがでしょうか。</p>
<p><a rel="lightbox" title="MuxtapeをFluidのサムネイルプラグインで表示" href='http://blog.boreal-kiss.com/wp/wp-content/uploads/2008/05/muxtapexfluid.jpg'><img src="http://blog.boreal-kiss.com/wp/wp-content/uploads/2008/05/muxtapexfluid-300x243.jpg" alt="MuxtapeをFluidのサムネイルプラグインで表示" title="muxtapexfluid" width="300" height="243" class="alignnone size-medium wp-image-223" /></a></p>
<p>[関連リンク]<br />
<a href="http://www.moongift.jp/2007/12/fluid/" target="_blank">MOONGIFT: &raquo; 専用Webアプリケーションを手軽に「Fluid」:オープンソースを毎日紹介</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boreal-kiss.com/2008/05/13043925.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>JavaScriptから変数を渡すブログパーツを配布する場合の注意点</title>
		<link>http://blog.boreal-kiss.com/2008/05/10200746.html</link>
		<comments>http://blog.boreal-kiss.com/2008/05/10200746.html#comments</comments>
		<pubDate>Sat, 10 May 2008 11:07:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://blog.boreal-kiss.com/?p=220</guid>
		<description><![CDATA[FLASHをブログパーツにして配布する場合にはJavaScriptに収めてしまってJSスクリプトを配布する方法がある。しかし自分が今までやっていた方法だとJS経由でFLASHに変数を渡す場合に問題が起こる可能性があることがわかったのでその解決方法について。まず今までの問題のある書き方の場合、例えばJSファイルを以下のように記述していた。

//&#34;http://example.com/showme.js&#34;
function showMe(userid){
    //swfを表示するのに必要な&#60;object&#62;タグ全体。実際は改行無し
    var obj = &#8216;&#60;objcet&#62;
            &#8230;略&#8230;
            &#60;param name=&#34;FlashVars&#34; value=&#34;userid=&#8217;+userid+&#8216;&#34; /&#62;
            &#8230;略&#8230;
    [...]]]></description>
			<content:encoded><![CDATA[<p>FLASHをブログパーツにして配布する場合にはJavaScriptに収めてしまってJSスクリプトを配布する方法がある。しかし自分が今までやっていた方法だとJS経由でFLASHに変数を渡す場合に問題が起こる可能性があることがわかったのでその解決方法について。まず今までの問題のある書き方の場合、例えばJSファイルを以下のように記述していた。</p>
<pre>
<span style="color:#990000;">//&quot;http://example.com/showme.js&quot;</span>
<span style="color:#000099;">function</span> showMe(userid){
    <span style="color:#990000;">//swfを表示するのに必要な&lt;object&gt;タグ全体。実際は改行無し</span>
    <span style="color:#000099;">var</span> obj = <span style="color:#009900;">&#8216;&lt;objcet&gt;
            &#8230;略&#8230;
            &lt;param name=&quot;FlashVars&quot; value=&quot;userid=&#8217;</span>+userid+<span style="color:#009900;">&#8216;&quot; /&gt;
            &#8230;略&#8230;
            &lt;embed &#8230;略&#8230;FlashVars=&quot;userid=&#8217;</span>+userid+<span style="color:#009900;">&#8216;&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&#8217;</span>;
    document.write(obj);
}
</pre>
<p>配布用ソースをは以下のような書式。</p>
<pre>
<span style="color:#990000;">//配布用html貼付けソース</span>
&lt;script type=<span style="color:#009900;">&quot;text/javascript&quot;</span> src=<span style="color:#009900;">&quot;http://example.com/showme.js&quot;</span>&gt;&lt;/script&gt;
&lt;script type=<span style="color:#009900;">&quot;text/javascript&quot;</span>&gt;showMe(<span style="color:#009900;">&quot;borealkiss&quot;</span>);&lt;/script&gt;
</pre>
<p>この場合、(万が一)ユーザーがすでにshowMeという関数を他で定義していると関数名がコンフリクトを起こす(以下の例ではユーザーの期待に反しブログパーツが二個表示される)。</p>
<pre>
<span style="color:#0000FF;">&lt;html&gt;</span>
<span style="color:#0000FF;">&lt;head&gt;</span>
<span style="color:#990000;">&lt;!&#8211;ユーザー定義のshowMe関数&#8211;&gt;</span>
<span style="color:#0000FF;">&lt;script <span style="color:#000000;">type=</span><span style="color:#009900;">&quot;text/javascript&quot;</span>&gt;</span>
function showMe(name){
    alert(&quot;Welcome, &quot; + name + &quot;!&quot;);
}
<span style="color:#0000FF;">&lt;/script&gt;</span>
<span style="color:#0000FF;">&lt;/head&gt;</span>

<span style="color:#0000FF;">&lt;body&gt;</span>
<span style="color:#990000;">&lt;!&#8211;ブログパーツのshowMe関数&#8211;&gt;</span>
<span style="color:#0000FF;">&lt;script <span style="color:#000000;">type=</span><span style="color:#009900;">&quot;text/javascript&quot;</span> <span style="color:#000000;">src=</span><span style="color:#009900;">&quot;http://example.com/showme.js&quot;</span>&gt;</span><span style="color:#0000FF;">&lt;/script&gt;</span>
<span style="color:#0000FF;">&lt;script <span style="color:#000000;">type=</span><span style="color:#009900;">&quot;text/javascript&quot;</span>&gt;</span>showMe(&quot;borealkiss&quot;);<span style="color:#0000FF;">&lt;/script&gt;</span>

<span style="color:#990000;">&lt;!&#8211;ユーザー定義のshowMe関数を実行させるつもりだったのに！&#8211;&gt;</span>
<span style="color:#0000FF;">&lt;script <span style="color:#000000;">type=</span><span style="color:#009900;">&quot;text/javascript&quot;</span>&gt;</span>showMe(&quot;borealkiss&quot;);<span style="color:#0000FF;">&lt;/script&gt;</span>
<span style="color:#0000FF;">&lt;/body&gt;</span>
<span style="color:#0000FF;">&lt;/html&gt;</span>
</pre>
<p>このコンフリクトはこちらが定義した関数を匿名関数(無名関数)でラップしてしまい、その場で匿名関数を実行させることで回避できる(special thx: <a href="http://blog.yungsang.com/" target="_blank">YungSang</a>)。</p>
<pre>
<span style="color:#990000;">//&quot;http://example.com/showme.js&quot; 修正版</span>
(<span style="color:#000099;">function</span>(){
    <span style="color:#000099;">function</span> showMe(userid){
        <span style="color:#000099;">var</span> obj = <span style="color:#009900;">&#8216;&lt;objcet&gt;
                &#8230;略&#8230;
                &lt;param name=&quot;FlashVars&quot; value=&quot;userid=&#8217;</span>+userid+<span style="color:#009900;">&#8216;&quot; /&gt;
                &#8230;略&#8230;
                &lt;embed &#8230;略&#8230;FlashVars=&quot;userid=&#8217;</span>+userid+<span style="color:#009900;">&#8216;&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&#8217;</span>;
        document.write(obj);
    }
    showMe(window._com_example_showMe_userid);
})();
</pre>
<p>配布ソースは以下のように修正。</p>
<pre>
<span style="color:#990000;">//配布用html貼付けソース修正版</span>
&lt;script type=<span style="color:#009900;">&quot;text/javascript&quot;</span>&gt;<span style="color:#000099;">var</span> _com_example_showMe_userid = <span style="color:#009900;">&quot;borealkiss&quot;</span>&lt;/script&gt;
&lt;script type=<span style="color:#009900;">&quot;text/javascript&quot;</span> src=<span style="color:#009900;">&quot;http://example.com/showme.js&quot;</span>&gt;&lt;/script&gt;
</pre>
<p>ポイントは匿名関数でラップしてしまうことでブログパーツ表示用関数をローカルスコープにすること;</p>
<pre>
<span style="color:#000099;">function</span>(){
    <span style="color:#000099;">function</span> showMe(&#8230;){
        &#8230;
    }
    showMe(***);
}
</pre>
<p>それと匿名関数をその場で実行させることだ;</p>
<pre>
(<span style="color:#000099;">function</span>(){&#8230;})();
</pre>
<p>これでwindow上で定義した変数&#8221;_com_example_showMe_userid&#8221;がコンフリクトしなければユーザーに迷惑をかけることはないはず。そのためにできるだけユニークな変数名にするとよい(例えば自ドメイン名に由来するものetc.)。</p>
<p>[関連リンク]<br />
<a href="http://jsgt.org/mt/archives/01/001833.html" target="_blank">JavaScript++かも日記: 【JavaScript】匿名関数で匿名スコープ&#038;インスタンス</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boreal-kiss.com/2008/05/10200746.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Muxtapeの404表示が超かっこいい</title>
		<link>http://blog.boreal-kiss.com/2008/05/10134636.html</link>
		<comments>http://blog.boreal-kiss.com/2008/05/10134636.html#comments</comments>
		<pubDate>Sat, 10 May 2008 04:46:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[Muxtape]]></category>

		<guid isPermaLink="false">http://blog.boreal-kiss.com/?p=219</guid>
		<description><![CDATA[crossdomain.xmlの有無を調べてたら出てびびった。クールすぎる。ここはセンスいいなあ。

]]></description>
			<content:encoded><![CDATA[<p>crossdomain.xmlの有無を調べてたら出てびびった。クールすぎる。ここはセンスいいなあ。</p>
<p><a rel="lightbox" title="http://borealkiss.tumblr.com/post/34265095" href="http://media.tumblr.com/5Vq1ESVSU8sqqil8PXZcLViY_500.png"><img src="http://media.tumblr.com/5Vq1ESVSU8sqqil8PXZcLViY_100.png" alt="muxtape404"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boreal-kiss.com/2008/05/10134636.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
