enchant.jsが楽しくてたまらない/ちょっと気になったところ

どうもこんにちは。
怠けているうちにかれこれ二か月以上も放置してしまいました。久しぶりの更新です。

最近、enchant.js(公式サイトへ飛びます)というライブラリをよく触っています。これはJavascriptを用いたゲーム制作をスムーズにできるライブラリです。

JSでゲームとか、ちょっと昔では考えられないことでしたなあ。WebでプレイするライトなゲームといえばFlashで作るのが当たり前でしたからね。

Spriteクラスだとか、addChild()メソッドなどと、AS3にとても影響を受けたであろう言葉がいろんなところに散らばっていて、AS3しか使えないようなモノリンガルな自分にとってはうれしい限りです。

でも使っていると、気になる点がちょこっとだけ・・・
画像を表示することができるクラスSpriteなんですが、これ自身にはaddChildメソッドがありません。ではどこにあるかと言うと、別のクラスGroupにあります。 ですので、画像の上に画像を重ねたい(キャラクターの上に感情を表すグラフィックを重ねるとか)場合は、Groupクラスをコンテナとしてその中にSpriteをaddChildしなければいけないのですね。

対してAS3は、DisplayObjectContainerクラスのサブクラスならaddChildできます。こちらのSpriteはDisplayObjectContainerのサブクラスとして派生していますが、普通にaddChildが使えることに慣れていたので、enchant.jsでは使えなかったことに違和感を覚えていました。

でもよく考えたら、BitmapとかTextFieldだってaddChildは使えないんですよね。それにFlexフレームワーク内だとmxmlで作ったビューにSpriteをaddChildしたい場合はUIComponentを間にかませないとエラーを吐きますから、そう大差ないかもしれません。(Flex4からは表示オブジェクトはまた違った体系になってますが……)

とりあえず、enchant.jsのSpriteはAS3のBitmapに当たると考えておくことにします。グループ化したいときはGroupをかませる!うん、むしろ名前がすっきりしてて多分分かりやすい!(・ω・´)

そんなこんなで楽しくenchant.jsを触らせて頂いております。ゲームはまだ作りかけですが、出来上がったら9leap.netにUPしたいな。したいな……!

とりあえずさっさとリモートで見てもらいたい人向けのTeamViewer導入方法

「○○ができない~」や「何もしてないのにおかしくなった~」などと、話だけを聞いてもさっぱり分からないとき、俺はよくTeamViewerというソフトを使って相手のパソコンをリモートコントロールして対応します。

でもここでよく躓くのが、「TeamViewerをどうやって使えばいいか分からない!」と言われた時です。大体よく分からない(理解しにくい)質問をする方は、落ち着いて考えられる状況ではないことが多々あります。そんな状態で口頭でインストール方法を伝えたら、悪い方向に流れることは必至です。

とりあえずTeamViewerを起動できるところまでたどり着いてくれれば、あとは操作側でいくらでも対処できますので、うまくいかない方のためにインストールから起動までの流れを丁寧に丁寧に書いてみようと思います。

“とりあえずさっさとリモートで見てもらいたい人向けのTeamViewer導入方法” の続きを読む

FlashDevelopを起動するときに出てくるよく分からないエラー

どうもこんばんわ。にしふなです。

以前から起こっている問題なんですが、FlashDevelopを開くと、よくこんなメッセージが出てきます。(FlashDevelop ver 3.3.4 RTMで確認)

バイナリ ストリーム ‘0’ に、有効な BinaryHeader が含まれていません。シリアル化と逆シリアル化の途中で、無効なストリームまたはオブジェクトのバージョン変更が発生した可能性があります。
場所 System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
場所 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
場所 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
場所 PluginCore.Utilities.ObjectSerializer.InternalDeserialize(String file, Type type)
場所 PluginCore.Utilities.ObjectSerializer.Deserialize(String file, Object obj, Boolean checkValidity)
FD起動時に出てくるエラー画面

エラー画面の終了ボタンは押せないので、このエラーが出たら仕方なく「続ける」ボタンを押していきます。ボタンを押してしばらくするとまた同じエラーが出ます。5回ぐらい続けると、やっと終了ボタンが押せるのですが、押してもFDが起動する様子はさっぱりありません。そしてまた起動させようとするとエラー・・・といった無限ループにはまってしまうのです;;

試しに、ずっと「続ける」ボタンを押したらどうなるかと思ってやってみたら、12回ぐらい押したところで(やっと)起動しました。あれ、起動するんならあのエラーは何だったんだ……

そのあとはFDを正常に終了させれば、次回起動時は特に異状もなく使うことができます。ほんとによく分からんエラーです;;

この解決法が簡単なのでこれでいいと思いますが、もうひとつ解決法があります。

FDの設定データが保存されているフォルダ(C:\Users\(ユーザー名)\AppData\Local\FlashDevelop\Settings)を開いて、そこにあるデータ「LayoutData.fdl」、「SessionData.fdb」、「SettingData.fdb」を別の場所に移動させます。
その後FDを起動して、正常に動いたら終了し、先ほど移動させたファイルを元の場所に戻してまた起動させます。これで改善するはずです。

とりあえずまとめとしては、

  • エラー画面の「続ける」ボタンをFDが起動するまで押しまくる。
  • 設定データを別の場所に移して起動&終了→データを元の場所に戻して起動

まぁしかし、一つ目の方法で解決するんでわざわざ二つ目で解決することはないですかね。

そういえば、このエラーメッセージで検索してみたんですが、FDがらみでの情報が全然出てこなかったんですよね。英語のフォーラムでそれらしい情報が一つあっただけでした。このエラーが出るのってもしかして俺だけ?と不安になってしまうのでした(;ω;`)

以下、2013/02/07追記

FlashDevelop 4.2.4 でも同じようなエラーが出るみたいです。(コメント参照)

メジャーバージョンアップまでしてるのにっ……!!

Googleのリアルタイム検索が便利すぎてTwitter公式検索の存在が霞む

「Noteslate」という、電子メモパッドが6月にアメリカで発売されるというアナウンスが今年の1月にあり、結構注目されているのですが、この時期になってもそれ以降音沙汰がなく、Twitter界隈でも「本当に発売されるのか?」といったつぶやきがかなり見られるようになってしまいました。;w;

http://www.noteslate.com/

しかしそれでも、先行するメモパッド「BoogieBoard」よりもずっと便利な機能に魅せられて、俺含めいろんな人が続報に期待しているんですよね。

で、実際にどれぐらい注目されているのか、Twitterのツイートを検索して、その結果から統計を出すスクリプトでも書こうかな~と思ったんですけど、そんなことはGoogle先生がもうやってくれていました。

Googleリアルタイム検索 – noteslate

リアルタイム検索のツイート統計グラフ上のリンクの画面右側にあるグラフがツイートの統計をした結果のグラフです。時間単位から年単位まで、さまざまなスパンでツイートの勢いが一発で分かります。かなり便利でしょ?

まぁこの機能はかなり前からあったんですが、Twitter公式の検索機能があんまりよくない気がするので、それと比較するために持ち出してみました。

とりあえず、私の独断と偏見がめちゃくちゃ入った2者のいいところ・悪いところを並べてみました。

Twitter Search (http://search.twitter.com/)

いいところ

  • Twitter公式
  • ジオタグ検索ができる
  • from:~ や near:~ など、カスタム検索ができる
  • 会話の流れを見ることができる(Show Conversation)
  • 検索結果のRSSを配信してくれる

悪いところ

  • 基本英語。
  • Trending Topicsにある言葉は英語圏のものなので、あんまり役に立たない。
  • Translate to English とか使わないですwww

Googleリアルタイム検索(http://www.google.co.jp/realtime?hl=ja)

いいところ

  • ツイートの勢いをグラフで見られる。
  • 何もしなくても検索結果がリアルタイムに流れてくる。(Twitter Searchはボタンを押さないと表示されない)
  • 昔のツイートもグラフから時間指定一発で直感的に出せる。
  • Googleらしく、検索ワードの予測をしてくれる。

悪いところ

  • 時間指定は直感的にできると言ったけど、やっぱり慣れが必要(ぁ
  • Twitter Searchみたいな、Twitterに特化したカスタム検索機能はない。
  • 検索結果の次ページ、前ページ表示のボタンが分かりにくい位置(グラフの下)にある。

公式の検索にもRSS配信とか、結構便利な機能があるんですけど、やっぱりツイートの統計グラフの便利さが光りすぎてて霞んじゃいますね;;

あと公式は英語圏向けの機能は充実してるんですが、他の言語圏に対しての機能は相対的に低く、ローカライズもしっかりやってほしいなぁと思いました。まぁその辺の穴埋めを色々なTwitter勝手サイトがしてくれているんですかね。

Googleリアルタイム検索も悪いところがないわけでもないです。俺は検索結果の上下に「次へ/前へ」のボタンがないのはかなり疑問に思いました。「リアルタイム」なんだから、前に戻るなんてことはしなくてもいいじゃん!というGoogle先生の意思の表れなのかもしれませんが・・・

とりあえずいいところ悪いところと色々ありますが、Googleリアルタイム検索は便利に使わせて頂いております。

e-mansionのメール設定マニュアル

ちょー個人的メモ。

e-mansionという、マンション向けのプロバイダがあるのですが、ここのメールアカウント設定マニュアルを探してみると、マンション名を入れて個別ページにまで飛ばないと見られないのでちょっと引っかかってしまいました。

しかも、個別ページに飛んだところで結局飛ばされる設定マニュアルは共通・・・

いちいち飛ぶのが面倒なのでリンクでも張っときます。

http://www.em-net.ne.jp/2404b115/ctp02/

アドレス中の「2404b115」という部分を変えると、別のマンションのページに行けます。あんまり意味はありませんが;;

設定内容を見てると、とくに特殊なものはありませんね。いちいちマンションごとに分けなくたって、公式ページからすぐ飛べるようにしてくれたっていいのに・・・!