読者です 読者をやめる 読者になる 読者になる

フニゲの開発日記

Electronとか...

cocos2d-x2.2.6のjsbでgetStringFromFileがおかしい

cocos2d-x


 cocos2d-x。仕事ではまだv2系から抜けられないのです。

 2月からiOSの開発が64bit対応必須になって、v2系を使用しているユーザーのために64bit対応版の2.2.6がリリースされたのですが、javascriptで書いたゲームを2.2.6で動かすと、なぜかうまく動きません。
 各ステージの開始時にステージのデータ(json)をgetStringFromFileでロードするようにしていたのだけど、これが読めたり読めなかったりする。同じデータでも何回も繰り返すと読めたりする。

 ずいぶん悩んだのですが、getStringFromFileの代わりにgetBytesArrayFromFileを使うことで読めるようになったので、共有しておきますね。

    loadFromFile:function (file) {
        // これは不安定
//      return cc.FileUtils.getInstance().getStringFromFile(file);

        // これなら動く
        var result = [];
        var u8arr = cc.FileUtils.getInstance().getByteArrayFromFile(file);

        for (var i = 0; i < u8arr.byteLength; i++) {
            result.push(String.fromCharCode(u8arr[i]));
        }
        return result.join("");
    },

 そろそろブログ再開します。情報がすっかり古くなったので、更新して新しい本を作りたいと思います。

広告を非表示にする