Flapp tag chunk
今日は、tag の chunk 分解まで。
ダウンロードしながらプレイするのを意識しながら。
parse: function(ibit, dict, movieClip) { if (ibit.len() < 20) { // 20 is minumum size for swf header, maybe. return ; } if (this.header === null) { this.header = FlappSWFHeader.load(ibit); this.flapp.header = this.header; console.debug(this.header); } while (ibit.a(), ibit.hasNext(2)) { var headPos = ibit.getBytePos(); var tag_and_length = ibit.ui16(); // tag and length var code = tag_and_length >>> 6; var length = tag_and_length & 0x3f; if (length === 0x3f) { if (ibit.hasNext(4) === false) { ibit.setPos(headPos); break; } length = ibit.ui32(); } if (ibit.hasNext(length) === false) { ibit.setPos(headPos); break; } var content = ibit.sub(length); console.log("swf tag code:"+code+" length:"+length); } }