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

<channel>
	<title>MujuuLog &#187; Flash</title>
	<atom:link href="http://mujuu.org/weblog/tag/flash/feed" rel="self" type="application/rss+xml" />
	<link>http://mujuu.org/weblog</link>
	<description>Web・自転車・写真など適当なメモ書き的なブログサイトです。</description>
	<lastBuildDate>Mon, 05 Dec 2011 14:45:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://mujuu.org/weblog/tag/flash/feed" />
		<item>
		<title>ExternalInterfaceを使ってみた。</title>
		<link>http://mujuu.org/weblog/web_memo/222</link>
		<comments>http://mujuu.org/weblog/web_memo/222#comments</comments>
		<pubDate>Wed, 28 Oct 2009 03:53:25 +0000</pubDate>
		<dc:creator>shin2</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Webメモ書き]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mujuu.org/weblog/?p=222</guid>
		<description><![CDATA[Flashでマウスの位置を参照して、画像を無限ループスクロールさせた時に、ブラウザウィンドウからフォーカスを外すと、凄いスピードで動くのでこれを何とかしたいと思った。 JavaScriptでブラウザウィンドウからフォーカ [...]]]></description>
			<content:encoded><![CDATA[<p>Flashでマウスの位置を参照して、画像を無限ループスクロールさせた時に、ブラウザウィンドウからフォーカスを外すと、凄いスピードで動くのでこれを何とかしたいと思った。</p>
<p>JavaScriptでブラウザウィンドウからフォーカスがアウトされた時と、フォーカスされた時を検出して、ExternalInterface.addCallbackを使ってFlash側の関数を操作すれば何とかできそうだ。</p>
<p>ExternalInterfaceはFlashからJavaScriptの関数・JavaScriptからFlash内の関数をコントロール出来るクラスみたい。<br />
まずはフォーカスが切り変わるごとに、Flash上のテキストフィールドの文字を切り替えることを試してみる。</p>
<p>■HTML<br />
swf表示の部分のallowscriptaccessは:&#8221;always&#8221;にする。（HTML上のJavaScriptを呼び出せるようにするかどうか）<br />
swf読み込み部分のobjectのid、param・embedのnameはblur_testとする。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=shift_jis&quot; /&gt;
&lt;title&gt;onfocus onblur test&lt;/title&gt;
<span style="color: #339933;">&lt;</span>script language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>AC_FL_RunContent <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;script src=&quot;AC_RunActiveContent.js&quot; language=&quot;javascript&quot;&gt;&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #006600; font-style: italic;">//フォーカス切り替えごとに実行される関数</span>
	<span style="color: #003366; font-weight: bold;">function</span> xChangeText<span style="color: #009900;">&#40;</span>bFocusMode<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		getMovieName<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;blur_test&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">callChangeText</span><span style="color: #009900;">&#40;</span>bFocusMode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #003366; font-weight: bold;">function</span> getMovieName<span style="color: #009900;">&#40;</span>movieName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>navigator.<span style="color: #660066;">appName</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Microsoft&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> window<span style="color: #009900;">&#91;</span>movieName<span style="color: #009900;">&#93;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> document<span style="color: #009900;">&#91;</span>movieName<span style="color: #009900;">&#93;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;/head&gt;
&lt;body onblur=&quot;xChangeText(false)&quot; onfocus=&quot;xChangeText(true)&quot;&gt;
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>■Flash<br />
ステージにインスタンス名 test_tf のテキストフィールドの文字を切り替える。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">external</span>.<span style="color: #006600;">ExternalInterface</span>;
<span style="color: #808080; font-style: italic;">//フォーカス切り替えごとにJavaScript側から呼ばれる</span>
<span style="color: #000000; font-weight: bold;">function</span> xChangeText<span style="color: #66cc66;">&#40;</span>bFocusMode:<span style="color: #0066CC;">Boolean</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> str:<span style="color: #0066CC;">String</span>;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>bFocusMode<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		str = <span style="color: #ff0000;">&quot;フォーカスされています。&quot;</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		str = <span style="color: #ff0000;">&quot;フォーカスアウトされました。&quot;</span>;
	<span style="color: #66cc66;">&#125;</span>
    test_tf.<span style="color: #0066CC;">text</span> = str;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//JavaScriptから呼べるように登録する</span>
ExternalInterface.<span style="color: #006600;">addCallback</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;callChangeText&quot;</span>, <span style="color: #000000; font-weight: bold;">null</span>, xChangeText<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>これでFlash上の文字を切り替えることができたので、この要領でフォーカスが外れた時にスクロールが止まるようにすれば、今回の問題は解決しそうだ（未確認）。</p>
<p>※はじめbodyタグにonloadでテストの実行をしようとしたが動作しなくてハマッた。 理由はswfファイル読み込みよりも前の段階にonloadを記述していたからみたいだ。読み込んでないswfにアクセスはできねーってことかい。（そりゃそうだ）</p>
]]></content:encoded>
			<wfw:commentRss>http://mujuu.org/weblog/web_memo/222/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://mujuu.org/weblog/web_memo/222" />
	</item>
		<item>
		<title>flashでxmlを読み込む。</title>
		<link>http://mujuu.org/weblog/web_memo/173</link>
		<comments>http://mujuu.org/weblog/web_memo/173#comments</comments>
		<pubDate>Thu, 02 Apr 2009 10:07:47 +0000</pubDate>
		<dc:creator>shin2</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Webメモ書き]]></category>

		<guid isPermaLink="false">http://www.mujuu.org/weblog/?p=173</guid>
		<description><![CDATA[FLASH上でXML内に記述したHTMLを表示した時の注意点。 まず、XML側のノード内を&#60;[[CDATA ]]&#62;で囲ってやる。しかし、内容がすべて実態表現で表示されてしまった。原因は、ターゲットノードの内容 [...]]]></description>
			<content:encoded><![CDATA[<p>FLASH上でXML内に記述したHTMLを表示した時の注意点。<br />
まず、XML側のノード内を&lt;[[CDATA ]]&gt;で囲ってやる。しかし、内容がすべて実態表現で表示されてしまった。原因は、ターゲットノードの内容をnodeValueで、しっかり指定してやること。</p>
]]></content:encoded>
			<wfw:commentRss>http://mujuu.org/weblog/web_memo/173/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://mujuu.org/weblog/web_memo/173" />
	</item>
	</channel>
</rss>

