AIRアプリのプロセスが終了しても残ってしまう

event.CLOSING内でexitを発行してやる必要あり

NSObjCRuntime.hでerror: expected unqualified-id のようなエラーがたくさん出る

c や cpp でコーディングしていて、NSObjCRuntime.hでerror: expected unqualified-id のようなエラーが

たくさん出た時は、c/cpp/h/hpp などから obj-c を使っているヘッダをインクルードしているのが原因。

c や cpp を m、mm にリネームするか、なんとか objc を使用しているファイルを

インクルードしないでもいいような形に変えてやるとひとまずおさまる。

Mac(Lion)にWindowsからVNCで接続すると壁紙だけの画面になる

Lionの画面共有、またはリモートマネージメントを有効にして

Windows7からVNCで接続すると壁紙背景だけの画面になり

一切操作ができない状態になったので困った。

この状態になったら、一度ログアウトなり再起動なりして、

Lionをログイン画面にした状態でVNCでリモートログインをしたら

すんなりできた。

でもスクリーンセーバ等が動いちゃうとまたLionをログイン画面にしないと操作できなかったりするので注意。

余計な設定をせずにすぐVNCを使いたい場合は、

Windowsキーをcommandキー扱いで使えるRealVNCがオススメ。

=====[ 間違った方法も念のためメモ ]===========

他のプログラムに頼れないかと探した結果、

SplashStream2をLionにインストールしたが、
(http://www.splashtop.com/splashtop2)

アンダースコア _ やバックスラッシュが入力できない

(キーコード誤認)不具合?がSplashにあるみたいでこれも諦める。

ちなみにSplashStream2を使いたい場合は以下の設定が必要。

SplashStream2の設定画面からドライバを追加インストール(要再起動)

Windows7にSplashtop Remote Desktop(gen 1)をインストール
(http://www.splashtop.com/splashtop2#otherproducts-tab)

Lionの時計横のアイコンからStream2のパスワードなりを設定し(ログイン不要)

Windows7からインストールしたクライアントを起動して接続すればOK

SnowLeopard時代に使ってた画面共有+(UltraVNC or RealVNC)より動作や描画が早い気がするので残念。

JavaScript & Flash連携でブラウザ終了時通信できない

ExternalInterfaceを使えば、JavaScriptのイベントからas3の関数を呼べる。

ブラウザ終了時に通信しようと、as3のブラウザ終了時に呼ばれる関数に

URLLoaderを設定したが、loadを読んでも一向にCOMPLETEもErrorもハンドラが呼ばれず

try{}catchに引っかかることもない…。そのまま関数が終了してしまう。

ブラウザ終了じゃない時に呼ぶと普通に処理される事がわかったので、

ブラウザ終了時のURLLoaderは使えないようだ。

で、無理やりやる方法としては、ExternalInterfaceで設定した関数から

通信させたい情報をJavascriptにreturnし、JavaScriptで通信してしまう。

ただし、情報内容が駄々漏れになるので用途は相当限られるかと思う。

Error: Syntax error: expecting rightparen before ********.

Error: Syntax error: expecting rightparen before ********.

が表示される場合は、エラーの文字通り

「前行のカッコ閉じ忘れ」が原因。

FlashDevelopからブラウザ経由の埋め込みSWFをデバッグする方法

まず、以下からFlashPlayer(デバッグ版)を別途ダウンロード・インストールする。

http://www.adobe.com/support/flashplayer/downloads.html

※もしリンクが切れてたら「Flash player debug」なんかでググれば出るはず。



IEでデバッグしたいなら、

Download the Windows Flash Player 11.4 ActiveX control content debugger (for IE)


ChromeやFireFoxなどでデバッグしたいなら

Download the Windows Flash Player 11.4 Plugin content debugger (for Netscape-compatible browsers)

をダウンロードしてインストールする。(バージョン11.4はこの記事を書いた時点のもの)


もちろん両方入れても構わない。




IEは特にPlayerを切り替える設定の必要はないはず。以下の7.まで飛ばして良い

今回はChromeでデバッグしたい場合なのでChromeの人は1.から行う事。


1.インストール後、一度すべてのChromeウインドウを閉じてから再起動する。

こうしないと新たにインストールしたデバッグ版Playerがプラグインとして認識されない。



2.スパナアイコンから「設定」>画面最下部の「詳細設定を表示...」

>プライバシーの「コンテンツの設定...」ボタンを押す


3.中段ほどにあるプラグインの「プラグインを個別に無効にする...」リンクをクリック


4.右上の「[+]詳細」を押す


5.Flashに3Fileほどあるはずなので、場所に「\Google\Chrome」が含まれているものを「無効にする」を押す

(おそらくデバッグ版は最後にインストールしたので一番下に出ている。これだけ有効にする)

6.Chromeをすべて閉じる


7.デバッグしたいSWFと同じ階層(今回はFlashDevelop任意プロジェクトフォルダののbin下)に

objectタグなどでSWFをembedしたhtmlファイルを用意する。(今回はtest.htmlとする)


8.FlashDevelopを起動


9.プロジェクト>プロジェクトの設定で一番下のプロジェクトをテスト(T)から

「ドキュメントを開く...」を選択し、「編集」ボタンを押す


10.「bin/test.html」を入力


11.実行するとhtml経由でSWFを読み込みデバッグできる。flashVarなどチェックしたい時に便利。

Chromeでブレイクポイントを使うと、一定時間動きがなかったので

プラグインを強制終了しますか?とか定期的に出るのが残念だけど

これはChromeの機能なので仕方ないっぽい。


追記:Chromeは設定しても自動更新後、5の無効にするが戻されてる場合があるみたい。

設定したのにできない時は、5から見なおして

Chrome標準のPlayerが有効になってしまってないかみると良い。

それと、埋め込みSWFがビルドしたSWFじゃない別のSWFを指している場合、

当然デバッグがおかしな事になる(ブレイク後、変な移動をしたりする)ので設定ミスに注意。