<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>X-LABO</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.dango-itimi.com/blog/atom.xml" />
   <id>tag:www.dango-itimi.com,2008:/blog//1</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1" title="X-LABO" />
    <updated>2008-05-14T11:34:47Z</updated>
    <subtitle>団子一味によるFlash実験Blog</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type  3.2-ja-2</generator>
 
<entry>
    <title>Action Script 2.0 三項演算子内 getter 使用のコンパイルエラー</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000961.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=961" title="Action Script 2.0 三項演算子内 getter 使用のコンパイルエラー" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.961</id>
    
    <published>2008-05-14T11:27:21Z</published>
    <updated>2008-05-14T11:34:47Z</updated>
    
    <summary>Action Script 2.0 三項演算子内で getter を使用する場合...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        Action Script 2.0 三項演算子内で getter を使用する場合、代入対象の値を全て getter にするとコンパイルエラーが発生します。

以下のような Sampleクラスがあるとします。

[code]
class Sample{

	private var num1:Number = 1;
	private var num2:Number = 1;
	public function get _num1():Number{ return num1; }
	public function get _num2():Number{ return num2; }
}
[/code]


ここで、以下の Test クラスのような三項演算子での Sample クラスの getter の利用は問題はありません。

[code]
class Test{

	public function Test(flg:Boolean){

		var sample:Sample = new Sample();

		var num1:Number = flg ? 1 : 2;
		var num2:Number = flg ? sample._num1 : 2;
		var num3:Number = flg ? 1 : sample._num2;
	}
}
[/code]


しかし以下の用な記述を行うと、コンパイルエラーが発生します。

[code]
class Test{

	public function Test(flg:Boolean){

		var sample:Sample = new Sample();

		//コンパイルエラー発生
		var num:Number = flg ? sample._num1 : sample._num2;
	}
}
[/code]

[code]
■エラー内容

代入ステートメントが一致しません。Function が見つかりましたが、Numberが必要です。
[/code]

getter の sample._num1 と sample1._num2 がNumber型ではなく Function型として評価されてしまうようです。

上記エラーを避け、なおかつ三項演算子を使用したい場合は、キャストを用いて型変換を行えばよいようです。

[code]
class Test{

	public function Test(flg:Boolean){

		var sample:Sample = new Sample();

		//コンパイルエラーは発生せず
		var num:Number = flg ? Number(sample._num1) : Number(sample._num2);
	}
}
[/code]

        
    </content>
</entry>
<entry>
    <title>雑記といくつかメモ</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000960.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=960" title="雑記といくつかメモ" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.960</id>
    
    <published>2008-05-14T11:17:44Z</published>
    <updated>2008-05-14T11:26:52Z</updated>
    
    <summary>山にこもって二ヶ月ほど経過しましたが、現在取り組んでいる仕事がなかなか終わりませ...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="ETC" />
            <category term="FLASH" />
            <category term="info" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[山にこもって二ヶ月ほど経過しましたが、現在取り組んでいる仕事がなかなか終わりません。中途 細かい仕事がいくつか入り、頭がいい具合に煮詰まっております。

以下、業務を通していくつか覚えた事を参考サイトと共にメモ。


【 Subversion 上の html ファイルのブラウザ表示設定 】

Subversion 上の html ファイルにブラウザからアクセスすると、html のソースがブラウザに表示されます。しかし html ファイルに属性設定を行と、html をブラウザで開いたときのそのままの表示にすることができるようになります。この設定をしたおかげで、打ち合わせ時に Subversion 上のファイル一式を PC上にダウンロードしなくても 表示確認を簡単に行えるようになりました。

　日常の備忘録:: HTMLをSubversionで管理しながらWebで参照可能に
　<a href="http://www.kaede-software.com/2008/01/htmlsubversionw.html" target="_blank">http://www.kaede-software.com/2008/01/htmlsubversionw.html</a>


【 デバイスフォント シェイプマスク適用にフィルタ設定 】

デバイスフォントにマスクをかける際、マスクはどのような形をしていようと、矩形マスクとして適用されてしまう問題があるようです。その問題を解決するために以下のサイトのような ビットマップキャッシュを用いた方法があります。

　fumiononaka.com : デバイスフォントが表示されない
　<a href="http://www.fumiononaka.com/TechNotes/Flash/FN0502002.html" target="_blank">http://www.fumiononaka.com/TechNotes/Flash/FN0502002.html</a>

上記サイトの他の方法として、デバイスフォントのテキストフィールドにフィルタ設定を行うと、ビットマップキャッシュを用いずとも、マスクは矩形として適用されず、シェイプの形そのままで適用することができるようです。


【 ローカル上で確認する際の 他バージョンへのswfへの変数アクセスの制限  】

FlashPlayer8で書き出した swf(8.swf) から FlashPlayer7 で書き出された swf(7.swf)を読み込む場合、ローカルPC上に配置している 8.swfを表示するhtmlをブラウザで開いて動作確認を行おうとしても、8.swf から 7.swf への変数へはアクセスできませんでした。

Flashのムービープレビューやネットワーク上では問題なく動作するため、おそらく他バージョンへのswfのローカルアクセスは制限されているのかもしれません。表示確認に、やや手間がかかってしまうのが面倒です。]]>
        
    </content>
</entry>
<entry>
    <title>FDT 3.0 Enterprise beta版で Refactor Moveコマンドがサポート</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000959.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=959" title="FDT 3.0 Enterprise beta版で Refactor Moveコマンドがサポート" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.959</id>
    
    <published>2008-03-13T12:42:41Z</published>
    <updated>2008-03-14T01:40:00Z</updated>
    
    <summary>最近情報収集にうとくなっており見逃していました。 FlexBuilder なり ...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="info" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[最近情報収集にうとくなっており見逃していました。
FlexBuilder なり FDT なり、早く Refactor Move コマンドがサポートされるようにならないかなあ、と鼻をほじほじしながら待ち望んでいたところ、FDT 3.0 Enterprise beta版 で Move コマンドがサポートされたとのこと。

<a href="http://fdt.powerflasher.com/blog/?p=40" target="_blank">http://fdt.powerflasher.com/blog/?p=40</a>

早速利用してみましたが、oh ブラボー！としかいいようがありません。プログラミング中に、クラス名、メソッド名、変数名はおろか パッケージ名やパッケージ構造もモリモリ変更したくなる方にはうってつけのツールとなりました。

追記)ベータ版のせいなのか、パッケージ名付でクラスを newを行っている箇所に対しては Moveが実行されない等、まだ動作は完全ではない模様。

---

以下、Action Script での Refactor Rename コマンド実行における注意事項。
配列演算子による変数へのアクセスの記述は注意が必要となります。
]]>
        以下のような 配列アクセス演算子を用いた Test というクラスがあったとします。スクリプトはAS2で記述しています。

[code]
class Test{

	private var num :Number;
	private var num1:Number = 10;
	private var num2:Number = 20;

	public function Test(n:Number){

		num = this[&quot;num&quot; + n];
		trace(num);
		trace(num1);
		trace(num2);
	}
}
[/code]

Refactor の Rename コマンドを用い、num1 を aaa1 という変数名に変更した場合、以下のようになります。

[code]
class Test{

	private var num :Number;
	private var aaa1:Number = 10;
	private var num2:Number = 20;

	public function Test(n:Number){

		num = this[&quot;num&quot; + n];
		trace(num);
		trace(aaa1);
		trace(num2);
	}
}
[/code]

Test コンストラクタの引数 n に 1 の値が渡された場合、変数 num1 は存在しないため、変数 num には undefined が代入されてしまいます。

Refactor の Rename コマンドを用いることを考えるのであれば、Test クラスは以下のように記述すべきとなります。

Refactor Rename コマンド実行前
[code]
class Test{

	private var num :Number;
	private var num1:Number = 10;
	private var num2:Number = 20;

	public function Test(n:Number){

		num = (n == 1) ? num1 : num2; 
		trace(num);
		trace(num1);
		trace(num2);
	}
}
[/code]

Refactor Rename コマンド実行( num1 → aaa1 へ Rename)
[code]
class Test{

	private var num :Number;
	private var aaa1:Number = 10;
	private var num2:Number = 20;

	public function Test(n:Number){

		num = (n == 1) ? aaa1 : num2; 
		trace(num);
		trace(aaa1);
		trace(num2);
	}
}
[/code]

private な変数やメソッドでは、上記のような問題に対する被害はあまり大きはないかもしれません。しかし、public な変数やメソッドに配列演算子を用いてアクセスする箇所が存在する場合、Rename コマンド実行により、複数クラスに影響が出てしまい 調査が困難となってしまう可能性があります。
    </content>
</entry>
<entry>
    <title>Excelで開いているファイルは URLLoaderで読み込めない</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000958.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=958" title="Excelで開いているファイルは URLLoaderで読み込めない" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.958</id>
    
    <published>2008-02-18T07:57:56Z</published>
    <updated>2008-02-18T08:02:36Z</updated>
    
    <summary>今後のネットでの検索用に、20分ほどつまずいた ファイル読み込み時の簡単なエラー...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        今後のネットでの検索用に、20分ほどつまずいた ファイル読み込み時の簡単なエラーのメモ。

URLLoaderでcsvファイルを読み込む処理を作成し ローカルPC上で動作検証してみたところ、次のような csv ファイルが読み込めないという旨のメッセージが表示されました。

[code]
[IOErrorEvent type=&quot;ioError&quot; bubbles=false cancelable=false eventPhase=2
text=&quot;Error #2032: ストリームエラー。 URL: file:///～/viewer.csv&quot;]
[/code]

原因は、読み込み対象の csv ファイルを Excel で開いていたからでした。Excelで開くことにより読み込み対象のファイルがロックされてしまっていたようです。Microsoft Office系のソフトは皆このようになるのでしょうか。メモ帳等のテキストエディタの場合は、この現象は起きません。csvファイルをExcelで開くようにファイル関連付けをしていると、ローカルPC上でのcsvファイル読み込み検証時、同じようにつまずく事があるかもしれません。
        
    </content>
</entry>
<entry>
    <title>トレジャーボインゴ11</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000957.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=957" title="トレジャーボインゴ11" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.957</id>
    
    <published>2008-01-14T13:21:16Z</published>
    <updated>2008-01-14T13:25:26Z</updated>
    
    <summary>会社の携帯端末 docomo SO905i の Flash Lite 3.0 に...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="tips" />
            <category term="update" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[会社の携帯端末 docomo SO905i の Flash Lite 3.0 にてトレジャーボインゴの動作確認を行ってみました。そして見事動作させることができました。

---

■Flash Lite 3.0 搭載 携帯用アドレス

・サンプル5 直アドレス
　<a href="http://m.dango-itimi.com/trebo/test/5.swf" target="_blank">http://m.dango-itimi.com/trebo/test/5.swf</a>

・携帯電話用 団子一味のアドレス
　<a href="http://m.dango-itimi.com/" target="_blank">http://m.dango-itimi.com/</a>

・QRコード
<img src="http://m.dango-itimi.com/img/qr.jpg">

携帯端末での操作方法は、「2」「8」「4」「6」キーでキャラクター移動＆攻撃となっております。

携帯用のトレジャーボインゴは、フレーム分割処理というものを組み込んでいるため、マップ生成からステージ表示まで20秒くらい時間を必要とします。携帯版ではマップ生成中は「マップ生成中...」といった表示を行う予定です。

---

Flash Lite 3.0 が搭載されている docomo 905i シリーズのワークメモリは以下のページによると 一律 3072KB とのこと。

<a href="http://www.nttdocomo.co.jp/service/imode/make/content/spec/flash/index.html" target="_blank">http://www.nttdocomo.co.jp/service/imode/make/content/spec/flash/index.html</a>

Adobe Device Central CS3 のエミュレータ上では、トレジャーボインゴのワークメモリ使用数は 2400～2600KB 程度となっているので、携帯端末上でも問題なく動作してくれました。

現状わかっている問題点として、フロア切り替え後、階段をすぐさま下り次のフロアへ移動すると メモリ解放が上手く行われない、といったことがあるようです。使用メモリが上がったままになってしまい どんどん 3000KB に近づいいってしまう、という現象が起こってしまいます。

端末の性能がアップしていることからか、Flash Lite 2.0 が搭載されていた au よりも処理速度は早く動作しています。キャラクター等の移動速度は PC に比べると遅いですが、au よりは早く動作するようになりました。

docomo 905i シリーズから画面領域がいままでの倍となったので swf表示サイズを当初の予定通り倍にしています。ドット感が出ていい感じです。


■PC版はこちら
]]>
        <![CDATA[<script type="text/javascript">swf( "trebo", 70, 480, 480 );</script>

画面クリック後、上下左右キーで動作します。]]>
    </content>
</entry>
<entry>
    <title>あけましておめでとうございます</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2008/000956.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=956" title="あけましておめでとうございます" />
    <id>tag:www.dango-itimi.com,2008:/blog//1.956</id>
    
    <published>2008-01-04T16:07:16Z</published>
    <updated>2008-01-04T16:10:24Z</updated>
    
    <summary>年末年始と親戚の方の不幸が重なり色々とばたばたしておりました。 これからできれば...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="ETC" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        年末年始と親戚の方の不幸が重なり色々とばたばたしておりました。
これからできれば新年用のイラストなど何かこさえたいと思います。

某所の日記はあまりに放置しすぎなので、こちら X-LABO へのリンクに切り替えたいと思います。
団子一味 &amp; X-LABO を見てくださっている皆様、今年もまったりとよろしくお願いします。
        
    </content>
</entry>
<entry>
    <title>トレジャーボインゴ10</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000955.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=955" title="トレジャーボインゴ10" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.955</id>
    
    <published>2007-12-27T07:59:05Z</published>
    <updated>2007-12-27T08:06:34Z</updated>
    
    <summary>年の最後に今までに出来ているものまでをアップ。 ポップアップテキスト表示やステー...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="update" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        年の最後に今までに出来ているものまでをアップ。
ポップアップテキスト表示やステージ切り替え処理組み込みなどなど。
        <![CDATA[<script type="text/javascript">swf( "trebo", 69, 240, 240 );</script>

画面クリック後、上下左右キーで動作します。

刀や盾を取得すると、今まで装備していた武具との合成が自動的になされます。現在は仮のテキスト表示を行っています。シンプルな操作で不思議なダンジョン系の合成システムを組み込むにはこういう形がベストかなあ、と思った次第です。

BGMも構想を練りつつ作成中ですが、携帯端末との兼ね合いも合って BGM や SE をゲームに組み込むのは一番最後になりそうです。音を入れるとぐっとゲームらしさが出るのですけれどもね。]]>
    </content>
</entry>
<entry>
    <title>Wii 二台目ゲット</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000954.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=954" title="Wii 二台目ゲット" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.954</id>
    
    <published>2007-11-24T03:41:27Z</published>
    <updated>2007-11-24T03:48:04Z</updated>
    
    <summary>昨日は以前勤めていた会社の同期の人の結婚式二次会に参加させてもらいました。 周り...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="ETC" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        昨日は以前勤めていた会社の同期の人の結婚式二次会に参加させてもらいました。
周りを見てみれば他の参加していた同期の人たちは皆 婚約、結婚済み。子供の話やら家を建てたという話やら、まるで未知の世界に迷い込んでしまった錯覚にとらわれていたわけですが、そんな最中 式といったら定番のビンゴゲームが始まりました。

ビンゴゲームといったら大きな声でリーチと叫んだり、ビンゴになったらスポットライトが当てられる、といった印象があります。目立つのが嫌な私は「やべ… 当たるなよ！ 絶対に当たるなよ！」といった具合にプルプルしておったわけです。

そうしたらなんといいますか、一等賞ウルトラビンゴ、景品は Wii ですよ。

おお、神よ… 
Wiiは最近購入したので二台目です。

ともあれ大変うれしいものでして、今回の Wii は家族用のものとさせてもらうことにしました。
新郎新婦の方、おつかれさまでした＆ありがとうございました。

        
    </content>
</entry>
<entry>
    <title>トレジャーボインゴ9 「FLERR: メモリ不足エラーです。」</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000953.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=953" title="トレジャーボインゴ9 「FLERR: メモリ不足エラーです。」" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.953</id>
    
    <published>2007-11-18T09:34:44Z</published>
    <updated>2007-11-18T09:37:57Z</updated>
    
    <summary>「処理フレーム分割」を行った事により、ローグライクマップ自動生成処理を携帯端末で...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="update" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[「<a href="http://www.dango-itimi.com/blog/archives/2007/000951.html">処理フレーム分割</a>」を行った事により、ローグライクマップ自動生成処理を携帯端末で動作させることに成功しました。しかし、生成処理の処理行数が多いためかメモリを結構消費してしまい、ゲーム本体であるトレジャーボインゴのメイン処理を続けて実行すると「FLERR: メモリ不足エラーです。」というエラーが発生。

　<a href="http://livedocs.adobe.com/flashlite/2_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_wEcute&file=00000090.html" target="_blank">モバイルデバイスに適した Flash Lite アプリケーションメモリの管理</a>

上記ヘルプページによると、メモリを解放するには使用していない変数に null を代入すればよいとのことなので、色々 null なり delete なり試してみましたが一向に解放される気配を見せてくれず。

Adobe Device Central CS3のエミュレータからメモリについて調べてみたところ、現状の au の FlashLite のヒープメモリ量では トレジャーボインゴを動作させることは困難かもしれません。後もう少しで動作する…！ というところでメモリが足りなくなってしまいます。vodafone は au よりもヒープメモリが高く設定されている(500KB程多い)ようで、動作するみたいです。

ローグライクマップ自動生成処理を AIR か何かで作成し、マップ情報をあらかじめたくさんの静的ファイルに書き出しておき、ゲーム実行時にそのファイルをランダムで読みに行く… といった対策が考えられますが、ローグライクマップ自動生成処理をAS3で作り直す気力は現在なし。

「処理フレーム分割」等、携帯用の対策を行っているだけで時間がかかり 先になかなか進めることができないため、しばらくは携帯で動作させる事はあきらめようと思います。当面は PC と Wii 用向けということで、今後 携帯端末の性能がもう少し上がってくれることを願います。]]>
        
    </content>
</entry>
<entry>
    <title>FDT3.0</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000952.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=952" title="FDT3.0" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.952</id>
    
    <published>2007-11-15T17:06:04Z</published>
    <updated>2008-01-14T13:20:46Z</updated>
    
    <summary>AS3対応になった FDT3.0、いつのまにやら発売されていた模様。 FDT3....</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="info" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[AS3対応になった FDT3.0、いつのまにやら発売されていた模様。

FDT3.0
<a href="http://fdt.powerflasher.com/" target="_blank">http://fdt.powerflasher.com/</a>

eclipseでAS2の開発を行う場合、もっぱらFDT2.0を用いておりました。
丁度仕事でAS3の開発を行うことになりそうなので、AS3の開発を行う場合、現在まだベータ版である FlexBuilder とどちらが開発がし易いか等、調査してみたいと思います。

追記)
FDT3.0をインストールした後、Flash Explorerを開こうとすると 「メモリが足りないから eclipse.ini 内のメモリ設定箇所を -Xmx512m に書き換えてください」といった旨のダイアログが表示され、起動することができませんでした。

調べてみたところ、以下のページが参考になり無事起動成功。

Hatena::Question
<a href="http://q.hatena.ne.jp/1187289426" target="_blank">Eclipseが「応答なし」にならない方法を教えて下さい。</a>

追記2) 2007/11/28
メインマシン Windows XP の eclipse 3.3.1 でソースコードを書いている途中 頻繁にeclipseがフリーズしてしまいます。ノートPC Windows Vista の eclipse 3.2.2 では快適に動作しています。フリーズの原因は eclipse が悪いのか FDT が悪いのか PCの性能がよくないのか、わからずの状況。

追記3) 2008/1/14
フリーズの原因が恐らく判明。 
追記2では Vistaではフリーズは起こらないと書きましたが、その後Vistaでも頻繁にフリーズが起きてしまっていました。
viplugin を eclipse に導入していて、なおかつ vi のファイル保存コマンド「：w」を実行する、と eclipse がフリーズする可能性が高いようです。なので、Windowsデフォルトの「Ctrl + S」で保存すればフリーズを回避することができます。FDT と viplugin で何か処理がバッティングしてしまっているのですかね。]]>
        
    </content>
</entry>
<entry>
    <title>処理フレーム分割</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000951.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=951" title="処理フレーム分割" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.951</id>
    
    <published>2007-11-14T11:28:51Z</published>
    <updated>2007-11-14T11:33:55Z</updated>
    
    <summary>「ローグライクマップ自動生成処理」を 現在作成しているFlashLiteゲーム「...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        「ローグライクマップ自動生成処理」を 現在作成しているFlashLiteゲーム「トレジャーボインゴ」に組み込んでみた所 携帯端末上ではエラーが発生し動作しなくなった、と以前blogに記述しました。1フレーム内で処理する行数が多すぎたためエラーが発生しているものと思われます。

「ローグライクマップ自動生成処理」のみを携帯端末で動作させてみたところ、同じくエラーが発生。「ローグライクマップ自動生成処理」を行う各クラス内のメソッドを複数のフレームをまたぎつつ呼び出す必要がありそうです。

対処として以下のような方法をとることにしました。


【 メインクラスの変更 】

メインとなる Sampleクラス があるとします。

[code]
class Sample{

	private var testA:TestA;
	private var testB:TestB;
	private var testC:TestC;

	public function Sample(root:MovieClip){

		testA = new TestA();
		testB = new TestB();
		testC = new TestC();

		testA.run();
		testB.run();
		testC.run();
	}
}
[/code]

TestA～Cクラスの runメソッドを実行すると それぞれの処理行数が多すぎてエラーが発生してしまう、という場合、各runメソッドを1フレームにつき一つずつ実行するためには以下の様に変更します。

[code]
class Sample{

	private var testA:TestA;
	private var testB:TestB;
	private var testC:TestC;

	private var main:Function = null;

	public function Sample(root:MovieClip){

		testA = new TestA();
		testB = new TestB();
		testC = new TestC();

		main = funcA;
		var sc:Sample = this;
		root.onEnterFrame = function(){ sc.run(); }
	}
	private function run():Void{

		main();
	}
	private function funcA():Void{

		testA.run();
		main = funcB;
	}
	private function funcB():Void{

		testB.run();
		main = funcC;
	}
	private function funcC():Void{

		testC.run();
		main = end;
	}
	private function end():Void{
		～
	}
}
[/code]

上記変更により、一つのフレームで実行される処理は mainメソッドのみとなります。実際は、mainメソッドの参照先メソッド(funcA～C)が実行されます。参照先メソッド内の処理終了後 次に行いたい処理を再び mainメソッドに代入し、次々とTestA～Cクラスの runメソッドを実行していきます。

【 各クラスの変更 】

ここで TestA クラス の内容が以下のようになっているとします。

[code]
class TestA{

	public function TestA(){}

	public function run():Void{

		func1();
		func2();
		func3();
	}
	private function func1():Void{
		～
	}
	private function func2():Void{
		～
	}
	private function func3():Void{
		～
	}
}
[/code]

TestAクラスの func1～3 メソッドの処理行数が多く、TestA.runメソッドを実行するとエラーが発生してしまう場合、以下の用に変更します。

[code]
class TestA{

	private var main:Function = null;

	public function TestA(){}

	public function run():Boolean{

		if(main == null) main = func1;
		main();
		return main == null;
	}
	private function func1():Void{
		～
		main = func2;
	}
	private function func2():Void{
		～
		main = func3;
	}
	private function func3():Void{
		～
		main = null;
	}
}
[/code]

また、Sampleクラス の funcAメソッド を以下の用に変更します。

[code]
	～
	private function funcA():Void{

		if(testA.run()) main = funcB;
	}
	～
}
[/code]

これにより、TestAクラス内の各メソッドが1つのフレームで一つだけ実行されるようになります。TestA.runメソッドから true が返ると、TestAクラス内のすべての処理が終了したことを意味します。


現在は「ローグライクマップ自動生成処理」に上記のような対処を各クラスに追加/変更中...
しかしなかなか動作してくれず。

        
    </content>
</entry>
<entry>
    <title>これはひどい無断掲載</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000950.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=950" title="これはひどい無断掲載" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.950</id>
    
    <published>2007-11-08T18:53:20Z</published>
    <updated>2007-11-09T05:15:27Z</updated>
    
    <summary>「おもしろFLASHゲーム集」というサイトに「OH! DANGO JAM」が無断...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="info" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[「おもしろFLASHゲーム集」というサイトに「<a href="http://www.dango-itimi.com/jam/">OH! DANGO JAM</a>」が無断掲載されているという情報をメールにていただきました、

おもしろFLASHゲーム集
<a href="http://flash.ge-mu.net/" target="_blank">http://flash.ge-mu.net/</a>

おもしろFLASHゲーム集 の 「OH! DANGO JAM」が掲載されているページ
<a href="http://flash.ge-mu.net/html/072703.php" target="_blank">http://flash.ge-mu.net/html/072703.php</a>
びっくりしたことに「自分のサイトに設置」タグまで用意されています。こ、こいつは信じられねえ…

このサイトを運営しているのが「有限会社チビコン」というところらしい。
<a href="http://chibicon.net/top.html" target="_blank">http://chibicon.net/top.html</a>

なんか見たことあるなこのURL、と、過去のメールをさかのぼって調べてみたところ、団子一味のゲームのURLに片端からリンクを貼り、ゲーム集リンクサイトを作っていたところではないですか。リンクが貼られるたびに、都度「ゲームを紹介しました」というメールがどんどん送られてきました。そのサイトには、各ゲームのURLと共にゲーム感想用掲示板というものが設置してあり、こちらの制作したゲームの感想が好き放題書けるようになっておりました。何が書いてあるかは、そのサイトがまだあるのであれば行って見るとわかります。こちらとしては、その書き込み内容に不快にさせられるだけだったためリンクを外してくれとメールを書きましたがスルーされてしまいました。

上記サイト、どうやら iframe で OH! DANGO JAM の swf を表示している模様。以前海外のサイトにて同じような事があった時、対策したような気がしましたがもう一度見直す必要がありそうです。何故こういう行為を行うサイトのために、こちらの時間を割かなくてはならないのかと、なんとも悩ましいものです。サクッとどこかに通報するだけで、対処してくるような所はないのですかね。.htaccessで制限かけることできるのですかなあ。

追記)
以下のページ 「さくらのレンタルサーバ非公式FAQ」の「画像への直リンクを防ぐ」を参考にさせてもらったところ、アクセス制限が上手くいった模様です。
<a href="http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess" target="_blank">http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess</a>

ばんじゃーい！]]>
        
    </content>
</entry>
<entry>
    <title>docomo 905i シリーズは Flash Lite 3.0</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000949.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=949" title="docomo 905i シリーズは Flash Lite 3.0" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.949</id>
    
    <published>2007-11-01T10:33:55Z</published>
    <updated>2007-11-01T10:38:50Z</updated>
    
    <summary>docomo 905iシリーズに Flash Lite 3.0が搭載されることが...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="info" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[docomo 905iシリーズに Flash Lite 3.0が搭載されることが公式から発表があった模様で以下のページに記述がありました。

　<a href="http://www.nttdocomo.co.jp/product/foma/905i/features/02.html" target="_blank">905iシリーズの主な特長</a>

そのうち以下の一覧に 905i が載ることになりそうです。

　<a href="http://www.nttdocomo.co.jp/service/imode/make/content/spec/flash/index.html" target="_blank">端末スペック一覧</a>

docomoでは Flash Lite 2.x 対応の機種は出ることはなくなったのでしょうか。
Flash Lite 3.0 は FlashPlayer8 相当との事ですが、ActionScript 1.0～2.0 で FlashLite の開発を行いたい、という場合は、 au, vodafone の事を考え FlashPlayer7 相当の Flash Lite2.0 での開発を行ったほうが良さそうです。wiiにも対応できますしね。

後はFlashLite2.0を用いればこれくらいのゲーム/携帯サイトが作れます、といったものを作成し 色々な所にプッシュしていければと思います。時間はえらいかかってしまっていますが、トレジャーボインゴはなんとしても完成させなくては。]]>
        
    </content>
</entry>
<entry>
    <title>トレジャーボインゴ8 ポップアップテキストエフェクト</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000948.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=948" title="トレジャーボインゴ8 ポップアップテキストエフェクト" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.948</id>
    
    <published>2007-10-18T11:53:36Z</published>
    <updated>2007-10-18T11:58:38Z</updated>
    
    <summary>「OH! DANGO JAM」でも使用していた 数値や英字がポップアップして表示...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="update" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        <![CDATA[「<a href="http://www.dango-itimi.com/jam/" target="_blank">OH! DANGO JAM</a>」でも使用していた 数値や英字がポップアップして表示される テキスト表示処理をライブラリ化。トレジャーボインゴに用いる予定。
以前も作成したような気がしましたが、過去とコーディングスタイルが徐々に変わっており、現在のコーディングスタイルに合わせたものを作成し直しました。

]]>
        <![CDATA[【 表示サンプル 】

<script type="text/javascript">swf( "pop", 68, 240, 240 );</script>

表示はすぐに消えてしまうので、再度確認する場合は再読み込みしてください。

【 サンプルファイル 】

処理内容は簡単なものですが、スクリプト一式とサンプル用flaファイルです。

　<a href="http://www.dango-itimi.com/blog/swf/68/pop.zip">[ DOWN LOAD ]</a>

【 使用方法 】

上記サンプルファイル内にあるスクリプトファイルをインポートする他、pop.fla のライブラリにある frontMC と backMC という名前のムービークリップが必要です。この二つのムービークリップには リンケージID を設定しています。

[code]

import effect.text.pop.Pop;

var str :String = "1234567890!?"; //表示文言
var px  :Number = 120; //表示X座標
var py  :Number = 120; //表示Y座標
var clr1:Number = 0xffeeee; //テキストふちの色
var clr2:Number = 0xff0000; //テキスト内部の色

var p:Pop = new Pop(this, px, py, str, clr1, clr2);

this.onEnterFrame = function(){

	if( !p.frame() ) return;

	trace("表示終了");
	delete this.onEnterFrame;
};

[/code]

Popクラスのインスタンスの frame メソッドを呼び出し、trueが返ってくると 一連の処理終了を意味します。

テキスト表示分 ムービークリップを生成し、表示終了後にムービークリップを削除、という処理を実行していますが、携帯のFlashLiteプレイヤーで ムービークリップの生成と破棄を多数繰り返して大丈夫だろうか、という懸念点があります。必要あらば、あらかじめ表示に必要な分だけムービークリップを生成しておき、そのムービークリップを使いまわす、といった処理を盛り込むことになりそうです。

【フォント】

フォントは <a href="http://bitmapmania.m78.com/" target="_blank">Bitmap Mania</a> さんのフリーフォント「<a href="http://bitmapmania.m78.com/sb/log/eid17.html" target="_blank">BM Cube</a>」を加工して利用させていただいております。]]>
    </content>
</entry>
<entry>
    <title>Flashのバージョンの違いで FlashLite用 swf書き出しに容量の差が出る</title>
    <link rel="alternate" type="text/html" href="http://www.dango-itimi.com/blog/archives/2007/000947.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.dango-itimi.com/blog/mt-atom.cgi/weblog/blog_id=1/entry_id=947" title="Flashのバージョンの違いで FlashLite用 swf書き出しに容量の差が出る" />
    <id>tag:www.dango-itimi.com,2007:/blog//1.947</id>
    
    <published>2007-09-21T01:40:55Z</published>
    <updated>2007-09-21T01:41:59Z</updated>
    
    <summary>Flash8で作成していたFlashLite用ゲームを Flash CS3(Fl...</summary>
    <author>
        <name>siratama</name>
        
    </author>
            <category term="FLASH" />
            <category term="tips" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.dango-itimi.com/blog/">
        Flash8で作成していたFlashLite用ゲームを Flash CS3(Flash9)でパブリッシュしてみると、Flash CS3で書き出される swfの方が容量が大きいことがあります。原因は詳しく調査はしていないのでわかりませんが、100KBの容量ギリギリにswfを作成している場合は とても困る問題です。

Flash CS3では ラスタデータの画像の書き出し処理に何か不備がある、といった記事をどこかで見かけたことがありますが、そこらへんが関係しているのかもしれません。
        
    </content>
</entry>

</feed> 

