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

<channel>
	<title>chimanaco blog &#187; ActionScript2.0</title>
	<atom:link href="http://blog.chimanaco.net/archives/category/actionscript20/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chimanaco.net</link>
	<description>ちまなこです。 Crazy about Something!</description>
	<lastBuildDate>Fri, 23 Jul 2010 09:17:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ActionScript2.0と3.0のプロパティの違い</title>
		<link>http://blog.chimanaco.net/archives/20090204123143.php</link>
		<comments>http://blog.chimanaco.net/archives/20090204123143.php#comments</comments>
		<pubDate>Wed, 04 Feb 2009 03:31:43 +0000</pubDate>
		<dc:creator>chimanaco</dc:creator>
				<category><![CDATA[ActionScript2.0]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.chimanaco.net/wordpress/?p=31</guid>
		<description><![CDATA[
ActionScript 3.0 プログラミング入門【閃光的網站・弛緩複合体 -Review Division-】

上記を読んで全くその通りだなぁ、と。俺も最近アタマ悪くなったなぁと想っていたのですが、少し考えれば元 [...]]]></description>
			<content:encoded><![CDATA[<ul class="linkOut">
<li><a href="http://aquioux.blog48.fc2.com/blog-entry-542.html">ActionScript 3.0 プログラミング入門【閃光的網站・弛緩複合体 -Review Division-】</a></li>
</ul>
<p>上記を読んで全くその通りだなぁ、と。俺も最近アタマ悪くなったなぁと想っていたのですが、少し考えれば元々アタマは悪かったんですよね。受験勉強してた時（普通の文系）も同じ参考書を何回も何回もやってやっと覚えたわけで。アタマ悪いんだから純粋に勉強量で勝負しなくては。ということで<br />
<a href="http://www.amazon.co.jp/o/ASIN/4861005515/chimanaco-22/">ActionScript 3.0 プログラミング入門</a>を全て理解できるまで読み直していこうと想います。少しでも曖昧なところは全部あげていきます。（でもProgressionもちょこちょこやってくよ！）</p>
<p><span id="more-31"></span></p>
<p>まずはプロパティ名の違いから。</p>
<table class="enTabS">
<caption>名称が変更されたプロパティ</caption>
<tr>
<th>AS2.0以前</th>
<th>AS3.0以前</th>
</tr>
<tr>
<td>_alpha</td>
<td>alpha</td>
</tr>
<tr>
<td>_height</td>
<td>height</td>
</tr>
<tr>
<td>_parent</td>
<td>parent</td>
</tr>
<tr>
<td>_root</td>
<td>root</td>
</tr>
<tr>
<td>_rotation</td>
<td>rotation</td>
</tr>
<tr>
<td>_visible</td>
<td>visible</td>
</tr>
<tr>
<td>_width</td>
<td>width</td>
</tr>
<tr>
<td>_x</td>
<td>x</td>
</tr>
<tr>
<td>_y</td>
<td>y</td>
</tr>
<tr>
<td>_xmouse</td>
<td>mouseX</td>
</tr>
<tr>
<td>_ymouse</td>
<td>mouseY</td>
</tr>
<tr>
<td>_xscale</td>
<td>scaleX</td>
</tr>
<tr>
<td>_yscale</td>
<td>scaleY</td>
</tr>
</table>
<p>alphaやscaleXなど%表記されていたものは0～1の範囲で記述するようになっています。</p>
<table class="enTabS">
<caption>設定できる値の範囲</caption>
<tr>
<th>AS2.0以前</th>
<th>AS3.0以前</th>
</tr>
<tr>
<td>0～100</td>
<td>0～1</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.chimanaco.net/archives/20090204123143.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash JavaScript Integration Kitを使ってFlashからJavaScriptを操作する</title>
		<link>http://blog.chimanaco.net/archives/20080903170226.php</link>
		<comments>http://blog.chimanaco.net/archives/20080903170226.php#comments</comments>
		<pubDate>Wed, 03 Sep 2008 08:02:26 +0000</pubDate>
		<dc:creator>chimanaco</dc:creator>
				<category><![CDATA[ActionScript2.0]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.chimanaco.net/wordpress/?p=10</guid>
		<description><![CDATA[今回やりたいことは、
ボタンを押すと別ウィンドウでFlashのスペシャルサイト表示。
開いたスペシャルサイトから元のページを操作（ページ遷移、focusを当て前面に出す）。
個人的には同じウィンドウで全て遷移して欲しいと [...]]]></description>
			<content:encoded><![CDATA[<p>今回やりたいことは、<br />
ボタンを押すと別ウィンドウでFlashのスペシャルサイト表示。<br />
開いたスペシャルサイトから元のページを操作（ページ遷移、focusを当て前面に出す）。<br />
個人的には同じウィンドウで全て遷移して欲しいところですが、これでやってみたいと想います。</p>
<p><a href="http://www.chimanaco.net//blog/sample/001/index.html">サンプル</a></p>
<p><span id="more-10"></span></p>
<h4>参考にさせて頂いたページ</h4>
<ul class="linkOut">
<li><a href="http://blog.burnercrew.com/2006/07/flash_javascript_integration_k.html">Flash / JavaScript Integration Kit &#8211; blog.burnercrew.com</a></li>
<li><a href="http://www.trick7.com/blog/2007/05/28-224730.php">trick7.com blog: Flash / JavaScript Integration kit 日本語訳</a></li>
<li><a href="http://www.himco.jp/allList.cfm">ヒム･カンパニー:翻訳記事全リスト文字表示</a>(62番)</li>
</ul>
<p>1. <a href="http://weblogs.macromedia.com/flashjavascript/">Flash / JavaScript Integration Kit</a>から最新版をダウンロードしておきます。</p>
<p>2. 1は一寸置いといて下準備。index.htmlからspecial.htmlを別ウィンドウで開く設定をします。<br />
&lt;head&gt;～&lt;/head&gt;部分に以下を記述。</p>
<p>[JavaScript]<br />
<script type="text/javascript">
<!--
function SWwopen(){
	window.open("special.html","SWindow", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=400");
    }
//-->
</script><br />
[/JavaScript]</p>
<p>続いて&lt;body&gt;～&lt;/body&gt;内該当する箇所に以下のような記述をします。</p>
<p>[XHTML]<br />
<a href="javascript:void(0);" onclick="SWwopen()">ウィンドウを開く</a><br />
[/XHTML]</p>
<p>これで別ウィンドウを開く準備ができました。続いて別ウィンドウで開くspecial.htmlの設定をします。</p>
<p>ActionScriptからJavaScriptを操作する設定をします。まずhtml側。<br />
installationフォルダ内のJavaScriptFlashGateway.js、JavaScriptFlashGateway.swfを今回使用するフォルダに移動。<br />
HTMLにFlashProxyのインスタンスを生成するJavaScriptを記述します。<br />
※xxxの部分は任意です。
</p>
<p>[JavaScript]<br />
<script type="text/javascript" src="xxx/JavaScriptFlashGateway.js"></script><br />
<script language="javascript">
var lcId = new Date().getTime();
var flashProxy = new FlashProxy(lcId, "xxx/JavaScriptFlashGateway.swf");
</script><br />
[/JavaScript]</p>
<p>body内にswfを表示するJavaScriptを記述。</p>
<p>[JavaScript]<br />
<script type="text/javascript">
var tag = new FlashTag("xxx/xxxx.swf", swfのheight, swfのwidth); // last two arguments are height and width
tag.setFlashvars('lcId='+lcId);
tag.write(document);
</script><br />
[/JavaScript]</p>
<p>さらに元ウィンドウをページ遷移させ、focusを当てるJavaScriptを記述。</p>
<p>[JavaScript]<br />
<script type="text/javascript">
<!--
function GoWin(WO) {
	if (opener.closed) {
		NewWin=window.open("","MWindow");
		NewWin.location.href=WO;
		window.opener.focus();    
		} 
    else { opener.location.href=WO;	
	window.opener.focus();
	}
}
//-->
</script><br />
[/JavaScript]</p>
<p>続いてFlash側。&quot;source/flash/actionscript&quot; 内のライブラリファイルをクラスパスが通る場所に置いて、importします。さらに、JavaScriptProxyクラスのインスタンスを作成します。</p>
<p>[AS3]<br />
import com.macromedia.javascript.JavaScriptProxy;<br />
var proxy:JavaScriptProxy = new JavaScriptProxy();<br />
[/AS3]</p>
<p>ここで「&quot;com.macromedia.javascript.JavaScriptProxy&quot;がロードされませんでした。」というエラーが出て暫く足踏みしたのですが、参考にさせて頂いた<a href="http://blog.burnercrew.com/2006/07/flash_javascript_integration_k.html">Flash / JavaScript Integration Kit &#8211; blog.burnercrew.com</a>の、</p>
<blockquote><p>Windows 版の Flash は asファイルが BOM つきの UTF-8 で保存されてないとダメらしい。<br />
JavaScriptProxy.as と JavaScriptSerializer.as を Flash で一度開いてから保存しなおすことによって解決。</p></blockquote>
<p>を発見してひと安心。仰る通りにして解決。<br />
続いてJavaScriptの関数を呼び出す以下の記述をします。</p>
<p>[AS3]<br />
proxy.call(&#8220;javaScriptMethodName&#8221;, &#8220;arg1&#8243;, new Object());<br />
[/AS3]</p>
<p>俺の場合、html側の記述で関数名がGoWin()、引数にURLを取る設定になっています。<br />
Flash側ではボタンを2つ作り、btn_01、btn_02と名前をつけてそれぞれ押すとその設定が入るようにしています。<br />
ソースは以下のようになりました。</p>
<p>[AS3]<br />
import com.macromedia.javascript.JavaScriptProxy;<br />
var proxy:JavaScriptProxy = new JavaScriptProxy();</p>
<p>//インスタンス宣言<br />
var btn_01:Button;<br />
var btn_02:Button;</p>
<p>//変数宣言<br />
var pageNum:Number;</p>
<p>//ブロードキャスター用オブジェクト<br />
var objCast:Object = new Object();</p>
<p>//カスタムブロードキャスター初期化<br />
AsBroadcaster.initialize(objCast);</p>
<p>//リスナー用オブジェクト<br />
var objListener:Object = new Object();</p>
<p>//objListenerをobjCastのイベントリスナーに登録<br />
objCast.addListener(objListener);</p>
<p>//関数定義<br />
objListener.eventComplete = function():Void  {<br />
	switch (pageNum) {<br />
		case 1 :<br />
			page = &#8220;page1.html&#8221;;<br />
			break;<br />
		case 2 :<br />
			page = &#8220;page2.html&#8221;;<br />
			break;<br />
	}<br />
	trace(pageNum);<br />
	proxy.call(&#8220;GoWin&#8221;,page,new Object());<br />
};</p>
<p>btn_01.onRelease = function() {<br />
	pageNum = 1;<br />
	objCast.broadcastMessage(&#8220;eventComplete&#8221;);<br />
};</p>
<p>btn_02.onRelease = function() {<br />
	pageNum = 2;<br />
	objCast.broadcastMessage(&#8220;eventComplete&#8221;);<br />
};<br />
[/AS3]</p>
<p>参考にさせて頂いたページも結構前の記事だったので、今はもっと好い方法があるのかもしれませんね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chimanaco.net/archives/20080903170226.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
