引き続き野中さんの記事(EaselJSのマウスクリックとドラッグ&ドロップ)のコードを書いていて、イベントハンドラからthisの参照した時に、何を指すのかがわからなかったのでテストしてみました。
上の記事で作ったShapeに対して・・・
function overHandler(eventObject) { console.log("over++++++++++++++++");
console.log("this>>"+this);
console.log("eventObject>>"+eventObject);
console.log("eventObject.target>>"+eventObject.target);
}
こんな感じで、各イベントハンドラでログを書き出してみた結果です。
onClick
this>>[Shape (name=null)]
eventObject>>[MouseEvent (type=click stageX=98 stageY=46)]
eventObject.target>>[Shape (name=null)]
onDoubleClick
this>>[Shape (name=null)]
eventObject>>[MouseEvent (type=dblclick stageX=104 stageY=51)]
eventObject.target>>[Shape (name=null)]
onPress
this>>[Shape (name=null)]
eventObject>>[MouseEvent (type=mousedown stageX=98 stageY=46)]
eventObject.target>>[Shape (name=null)]
onMouseMove
this>>[MouseEvent (type=mousedown stageX=110 stageY=55)]
eventObject>>[MouseEvent (type=mousemove stageX=503 stageY=253)]
eventObject.target>>[Shape (name=null)]
onMouseUp
this>>[MouseEvent (type=mousedown stageX=98 stageY=46)]
eventObject>>[MouseEvent (type=mouseup stageX=98 stageY=46)]
eventObject.target>>[Shape (name=null)]
onMouseOver
this>>[Shape (name=null)]
eventObject>>[MouseEvent (type=mouseover stageX=115 stageY=55)]
eventObject.target>>[Shape (name=null)]
onMouseOut
this>>[Shape (name=null)]
eventObject>>[MouseEvent (type=mouseout stageX=119 stageY=66)]
eventObject.target>>[Shape (name=null)]
これらをまとめると・・・
- onMouseMove,onMouseUpでは、thisは対となるMouseEvent(mousedown)を指す。
- その他のマウスイベントでは、thisはshapeを指す。
ということのようです。
※easeljs:0.6.0で動作確認。
関連リンク
ついでなんで、合間にいじってたCreateJSのマウスイベントについて。
クリックは問題なく動いたんだけど、マウスオーバー/マウスアウトがうまく行かなくて填まりました。で、結局・・・
というメソッドを使って、明示的にonMouseOverとonMouseOutを使うことを宣言しないといけないらしいです。こちらの記事(EaselJSのMouseEventを理解しよう)を参考にしました。感謝。
あと、EaselJSのバージョンが0.6.0以降は、イベントハンドラでなくイベントリスナー推奨らしいので、その関連リンクも。
Flashな人にとっては、AS2.0 >> AS3.0的な流れですね。
ようやく重い腰を上げて、CreateJSを触り始めました。
とりあえず参考にしたのは、当日の講義も聴いた
野中さんのこの記事。
で、記事はわかりやすいんだけど。ライブラリのバージョンが上がってるので、その辺の注意点をメモ。
walk2_mc._SpriteSheet = new SpriteSheet({images: [“sprite_sheet.png”], frames: [[0,0,167,268,0,84.5,135],[167,0,167,268,0,84.5,135],[334,0,167,268,0,84.5,135],[0,268,167,268,0,84.5,135],[167,268,167,268,0,84.5,135],[334,268,167,268,0,84.5,135]]});
この「frames」に書かれている配列の2,3番目が幅(168)と高さ(268)になります。
去年の11月に聞いて、今頃触るっていうのもアレなんですけど、記事はたくさんあるけれど、バージョンの差違で同じようにハマル人もいるかもなので、一応メモしておきます。
※easeljs:0.6.0、soundjs:0.4.1、preloadjs:0.3.0で動作確認。
CreateJS勉強会(第3回)に参加してきました。とりあえずメモとして諸々リンク先を貼っておきます。
iOSシミュレータにインストールしたアプリや画像データなどを削除する方法。これで行けるらしい。以下、「iOS開発ガイド」の「iOSシミュレータの使用」から引用。
コンテンツと設定のリセット
シミュレーション環境のユーザコンテンツと設定を工場出荷時の状態に戻し、インストールしたアプリケーションを削除するには、「iOSシミュレータ(iOS Simulator)」>「コンテンツと設定をリセット(Reset Content and Settings)」を選びます。
下記サイトからの情報です。感謝。
先日、Flash Professional CS6アップデート2が公開されて、CS6から直接iOSシミュレータを使ったデバッグができるとのことで、早速試してみたのでメモを残します(環境:MacOSX 10.6.8、Xcode4.2)。
- iOSシミュレータSDKにパスを通す。ファイル>AIR for iOS 設定>一般で、iOSシミュレーターSDKにパスを設定します。ウチの環境だとこんな感じ。/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk > 設定画面
- ファイル>AIR for iOS 設定>デプロイは、こんな感じ。> 設定画面
- デバッグ>ムービーをデバッグで、iOSシミュレータを選択して、デバッグ。> 設定画面
これでiOSシミュレータが起動して、アプリが転送されているので、そのままデバッグできます。ただしiOSシミュレータが起動してもアプリは自動で開きません。またアプリは2画面目以降にインストールされるようなので、フリックしてページを切り換える必要があります。
以下の記事とツイートを参考にしました。ありがとうございます。
マルチドメイン運用を考えて、独自ドメインをサイトルートから変更しました。で、サイトルートにあったmtフォルダも移動したのですが、ブログの保存ができなくなったり、確認ボタンでNot Foundが出たり…。
一応、忘れてしまいそうのでメモ。
- mt/mt-config,cgiに書いてあるパスを修正。修正箇所はこちらを参照。
- ブログ設定の公開設定>サイトパスをディレクトリ変更に合わせて修正。
これで問題なくブログも修正可能になりました。普段しないことをすると大体はまるという、よくある話でした(笑)。
Flash Bulider4.6でCameraUIクラスを使ったiOSアプリのテストをしていたんですが、何度かカメラを呼び出して(CameraUIはiOSのカメラを呼び出す仕様)いると、何度目かで必ずアプリが落ちる…という現象が発生しました。
で、いろいろググってみたら、こんな記事を発見。
この記事によると「Flex SDK4.6に問題があって、iOS上ではカメラを使うアプリは使えない」とのこと。がーん…。
結果は問題なく動作しました。Flex 4.8ならOKなようです。しかしこの問題、いろいろググった割に関連記事が1つしかないとか…。AbodeのFAQとかに載っていてもよさそうですが。
Flash Builder4.7を入れてみたんですが、これってFlex SDK 4.6でAIR SDK 3.1なんですね…。これだとあまり意味がないので、Flash Builder4.7+Apache Flex4.8+AIR3.4にしてみました。次回のセットアップ用にメモしておきます。
これで完了です。無事セットアップしてAIR for iOSでの実機書き出しまでテストできました。わかっていれば簡単なことでも、いろいろ調べながらだと結構手間がかかるので、参考までに。
ぶつぶつつぶやきながら作業していたら、
柊さんにアドバイスいただきました。
柊さんと各ブログ主さんに感謝。
[追記1]環境を書いていませんでした。MacOSX10.6.8+MBP2011です。
[追記2]AIR SDK 3.4をDLする際に、何故かSafari(5.1.7)だとうまく行かず、ChromeでDLしました。
Flash BuilderでAIR for iOSのテストしようとしたら、p12の証明書ファイルがドコにあるのかわからず…。
で、下記の対処で解決。
- キーチェーンアクセスを起動。
- キーチェーン;ログイン、分類;自分の証明書を選択。
- iPhone Developer証明書の中にある秘密鍵を選択。
- ファイル>書き出す
で、.p12のファイルが作れます。これを読み込ませてOK。
Xcodeだと一回設定してそのままなので、ちょっと焦りました。
自分用メモとして。
AS,Objective-C,Javascript,その他諸々の備忘録