Tag { memo } 一覧

[haXe][js] “Flasher だけど js 案件増えてきたなー” みたいな人は haXe かじってみてもいいんじゃね?

Category:{ haXe, javascript }  Tag:{, , , } Comments:{ No Comments }
Posted:{ 2012.01.19 03:26:23 }

最近ちょくちょく haXeで js を試しているのでメモ。
※haXeは、エックス(とかヘックス)とか呼ばれてる。

そもそも haXe って?

haXe ってなに?って人のためにざっくり説明。
haXe は1言語で、Flash (AS2/AS3) 、 js 、PHP、C++、NekoVM、にかきだせる言語。(.hxファイルをコンパイラオブションで出し分ける)
haXe – haXe の紹介

記述は AS3 とか JAVA に似ていて、サーバー側もクライアント側も1言語でかけるってのが、特にメリット(かな?)。
※「1言語」ってのは「ワンソース」と同義ではないです。念のため。

特に、 haXe に興味を持った個人的理由は下記。
・(私自身が) オブジェクト指向 (AS3 or JAVA) に慣れている。
・ js に慣れていない。
・ js を仕事で書くことになった。
・ js でも AS3 みたいに継承とか書きたい。(prototype ふぁっこふ)
・ js は、コンパイルチェック(や型チェック)がないからデバッグがめんどい。
・いつも使ってる FDT が haXe の開発に対応している。(FlashDevelopも対応しているとのこと)

これはやってみるしかない(・∀・)

という感じ。

このご時世で「Flasherだけど js 案件増えてきたなー」みたいな人は、 haXe かじってみるのはあり?かもしれない。
「すべての道はインタラクションデザインに通ず」。

開発環境の準備

とりあえず無料で整う。

Mac なら FDT5 Free
Win でも FDT5 Free or FlashDevelop
※ほかにもあるのかな?

それぞれのIDEのhaXeチュートリアルをみればいいんじゃないかな。

FDT での haXe js プロジェクトチュートリアル動画は下記。
[1] haXe in action, check out a sample haXe project in FDT 5
[2] Complex HaXe example

ということで、以下、 js を書きだすメモ
(とくに js に限ったものではないメモも混じっています)

(続きを読む…)

[memo] FDT5 で iOS ANE のDistribution 書き出しバグ?

Category:{ AIR, FDT }  Tag:{, , , , } Comments:{ No Comments }
Posted:{ 2012.01.04 06:57:04 }

なぜか、FDT5 で .aneを利用したAIR for iOSアプリを、Distribution (app-store/ad-hoc)で書き出すと、実機で動いてくれない。
※「PropertieのFDT Mobile Propertie の iOS の Deplayタブ」 から書きだしたり、「自作のANT」で書きだしたりしてみたけど、うまくいかず。
※プロビジョニングや証明書はちゃんとDistribution用を使用している

.aneを利用しなければ動く。(xxx-app.xmlに-extdirを指定していても、as側で宣言しなければ大丈夫)
これで1週間ほどはまった。(´・ω・`)

Flash Builder4.6 で書きだすと問題なく動作する。
ので、なにかFDTのバグ?なのだろうか?。

分かり次第追記予定。
だれか原因がわかる方、ぜひ@itozまで教えていただけると有りがたいです。

[AIR3][ANE][iOS] iOSでAIR Native Extention (ハマった点メモ)

Category:{ AIR, Native Extention, Objective-C }  Tag:{, , , } Comments:{ No Comments }
Posted:{ 2011.12.13 02:11:46 }

ios ane memo

iOS で AIR Native Extenison (以下ANE) アプリを作成するときにハマった点メモ。
正確に確認できていないので間違った情報もあるかもしれませんが、あくまで参考までに
※特にiOSやANEに限ったことではないものも混ざっています。

.aneを含んだAIRアプリパッケージ時のエラー

アプリケーションIDの間違い?

An implementation for native extension ‘[クラスパス]‘ required by the application was not found for the target platform.
・アプリケーション記述ファイル(xxx-app.xml) に extenisionID がない場合。
・.ane自体を生成するときに失敗している場合。(ane化するときのextensionIDが違うなど)
・AIRパッケージ時adtオプションで-extdirを指定していない。もしくは指定先のフォルダパスが間違っている場合。

extenisionIDは下記3つが同じでなければならないので、再度確認し、aneを作成してみるなど。
・swc内のExtensionContext.createExtensionContextの第一引数に渡している文字列
・.ane作成時のextension.xmlのidタグに指定している文字列
・AIRパッケージ時のアプリケーション記述ファイルのextensionIDタグに指定している文字列

@Hiiragi3 が公開している ANE制作ツール 「ANEtty 」を使うと便利(もうこれがないと無理)

Xcodeの問題?

ld warning: unexpected srelocation type 9
.aneに含める.aクラスをXcode 4.2 で作成した時に出る。.aをXcode 4.1でを作りなおすと問題なかった。(thx! @arkw

過去バージョンXcodeをダウンロード出来るページ(Developer登録しないと落とせない?)

複数の.aneファイル指定するとエラー

ネイティブの.aファイルの関数名(イニシャライザやファイナライザなど)が同じだと、エラーになる。
※FlashBuilder4.6だと、事前にエラー表示をしてくれるので便利らしい。

実機転送時

プロビジョニングファイルが認識されていない?

A valid provisioning profile for this executable was not found.
XcodeのOrganizerでアプリを実機に転送できない場合に出るエラー。(これはANEに限ったことではないですが)

・パッケージ時に使用したプロビジョニングファイルが実機にインストールされていない(たぶん)
・App Store もしくは Ad Hoc パッケージ時にdevelop版のプロビジョニングファイルを指定した(たぶん)

idの不一致

The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.

app-storeパッケージの時にでる。
・プロビジョニングに指定したAppIDと、アプリケーション記述ファイルのidタグが一致していない。

Could not install provisioning profile
The profile “ほげほげ” does not include this device and cannot be installed thereon.

distributionプロビジョニングを実機にドラッグドロップするとでる。原因よくわからない
(だれか教えて( ´д`; ))

Xcode counld not find a valid private-key / certificate pair for this profile in your keychain.
Organizerでプロビジョニングを選択したときに、上部に出るエラー。
プロビジョニングファイルをXcodeアイコンにドロップしたら消えた(よくわからず)

アプリ実行時

起動しても画面がずっと真っ黒(もしくはDefault画像のまま)

AIRパッケージ時に-connect オプションでデバッグ先IPアドレスを指定すると、接続先が見つからない場合、しばらく何も表示されない。

起動してすぐ落ちる

Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
Dec 12 20:29:49 unknown ReportCrash[2017] : libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary

↑みたいなエラーがOrganizerのConsoleに出る。

ipa-test (ipa-test-intrepreter)、ipa-debug(ipa-debug-interpreter) パッケージは、swf の debugオプションtrueでコンパイルしていなければいけない。
Adobeのサイトにはipa-debugについてしか言及していないが
、ipa-testでもそうだった。

参考

Adobe AIR * iOS パッケージ

ANTを使用したiOSパッケージ

Packaging AIR application for iOS devices with ADT command and ANT script at The Space For App Developers

Native Extension for Adobe Air and IOS 101 « « Liquid-PhotoLiquid-Photo

[AS3] Frame メタデータタグの factoryClass のローディングでハマった

Category:{ actionscript }  Tag:{, , } Comments:{ No Comments }
Posted:{ 2011.05.14 07:16:20 }

AS3 でローディングを作る時、下記 のような方法があります。

[1] 本体の swf とは別に、プリロード swf を作る。
[2] factoryClass でプリロードクラスを指定し、ドキュメントクラスより先に実行する。

[1] の方法は swf が2つ出来てなんか好みじゃないので、最近は [2] の方法をよく使っています。

※そもそも factoryClass って何?って人は、下記サイトが参考になります。
メタデータタグ[Frame]とは? | Mtok-blog

今回ハマった点

で、何でハマったかと言うと、
「 swf 全体が読み込まれた後にしか、ローディングがスタートしない」現象です。
※つまり、全くローディングになってない。

問題はドキュメントクラスを生成する部分でした。

/*  ※ Index.asをドキュメントクラスとした場合。*/
    var indexClass:Class = getDefinition('Index') as Class;
    //var index:Index = new indexClass() as Index;//←これだとダメ
    var index:DisplayObject = new indexClass() as DisplayObject;//←これはちゃんと動く
    addChild( index );

上記の Index の型指定 (2箇所) が問題でした。。。(´・ω・`)

なぜダメか?

Preloader クラス内に Index と書くと、そのフレームに Index が存在する事になり、結局それが読み込まれるまで Preloader クラスがスタートしないのです。
@bkzen に教えて頂きました。THX!)

どうしてハマった?

普段は型指定を DisplayObject にしているので問題ないのですが、
今回なぜこう書いてしまったのか?。

それは、Preloader から Index クラスに渡したいデータがあり、public メソッドを呼ぶために、何気なく型指定をしてしまっていたのでした。。

//↓こう言うことをしたかったが為にハマった。
index.setData(hoge);

分かってしまえば原因は単純ですが、ついやってしまいそうな落とし穴ですよね。

解決方法

結局プリローダーからドキュメントクラスに何かしらデータを渡したい場合、下記のような方法が良いでしょう。

・ドキュメントクラスにインターフェイスを実装する
一旦シングルトンクラスにデータを格納し、ドキュメントクラスから取得する。

その他

その他、ハマりやすいポイントとして、下記サイトも参考になります。

馬鹿全 – Frame メタデータタグでプリローダを作る時の注意

Flex SDK でプリローダー – kaityoの日記

以上。

では!よいプリロードライフを!

[memo][progression4] コマンドでXMLを読み込む

Category:{ Progression }  Tag:{, } Comments:{ No Comments }
Posted:{ 2010.10.29 01:32:41 }

Progression4のコマンドで、XMLを読み込んでメンバ変数に入れる、
ってそれだけのメモ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var _xmlURI:String="hoge.xml";
var _xml:XML;
//〜略〜
	addCommand(
		new LoadURL( new URLRequest( _xmlURL ))
		, function():void{
			_xml = new XML(this.latestData);
		}
		, function ():void{
			_startParse( _xml) ;
		}
	);
//〜略〜
private function _parse(xml:XML):void{
	//パース処理など
}

ロード系のコマンドの後にlatestDataに値が入ってくるのがポイント。
getResourceById()でもいい。

参考リンク

memo.393 » Blog Archive » [AS]progression4 Load系コマンド(LoadURLとかLoadSoundとか)で読み込んだデータをインスタンス変数に参照させて取り扱うときの注意

[memo][Progression4]ディープリンクに存在しないシーン名を指定した時のエラー処理

Category:{ actionscript, Progression }  Tag:{, } Comments:{ No Comments }
Posted:{ 2010.05.18 12:55:24 }

Progression小ネタメモ。

ディープリンクが動作する状態で、URLシャープ以下に、存在しないシーン名を指定された時、
そのままだと動作が止まってしまう。
※ex) ” http://www.○○○.com/#/存在しないシーン名 “など

その場合、ProcessEventクラスのPROCESS_ERRORで判断できるので、対策をとる。
ex)
「強制的にindexシーンに移動させる」
「Not Foundシーンを用意しそこに移動させる」
など

1
2
3
4
5
6
7
8
9
10
11
12
//
//IndexScene.as
//
protected override function atSceneLoad() : void {
	manager.addEventListener(ProcessEvent.PROCESS_ERROR, processError );
}
 
private function processError(event : ProcessEvent) : void {			
	//trace("ERROR");
	// 最初のシーンに移動します。
	manager.goto(new SceneId( "/index" ));
}

ProssesEventクラス

SceneManager オブジェクトが処理を実行、完了、中断、等を行った場合に ProcessEvent オブジェクトが送出されます。 通常は、Progression オブジェクトを経由してイベントを受け取ります。

[memo] FDT4でTemplateがImport出来ない問題

Category:{ FDT }  Tag:{, , } Comments:{ 1 Comment }
Posted:{ 2010.05.15 10:42:52 }

@fumixさんのTweetで知りましたが、FDTがMilestone2にバージョンアップして、
過去のバージョンでExportされたTemplate類がもろもろImportできない状態になっているようですので、その解決法など。
(下記3箇所確認済み)
※環境設定 > FDT > Editor > Templates
※環境設定 > ANT > Editor > Templates
※環境設定 > XML > XML Files > Templates

解決法

import側のテンプレート(XML)の1行目該当部分を下記のように修正。

1
<?xml version="1.0" encoding="UTF-8"?>

↓standalone=”no”を追加

1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

これで読み込めるようになりました!(・∀・*)
※standalone=”no”を”yes”にするとどうなるか等は未確認です。

次期バージョンではどちらでも読めるように対応してほしいところです(期待)

関連エントリー

FDTテンプレート作りました。


レンタルサーバー豆知識