currentY = anchorY;
}
} else if (first6bits) { // Change (0XXXXX != 000000)
- if (edgeTypeArray.length > 1) {
+ if (edgeTypeArray.length > 0) {
shapeRecords.push(
{fillStyle0:fillStyle0, fillStyle1:fillStyle1, lineStyle:lineStyle,
edgeTypes:edgeTypeArray.join(''),edges:edges}
);
}
- if (first6bits & 0x10) { // StateNewStyles
+ var stateNewStyles = first6bits & 0x10;
+ var stateLineStyle = first6bits & 8;
+ var stateFillStyle1 = first6bits & 4;
+ var stateFillStyle0 = first6bits & 2;
+ var stateMoveTo = first6bits & 1;
+
+ if (stateMoveTo) {
+ var moveBits = ibit.ub(5);
+ currentX = ibit.sb(moveBits); // MoveDeltaX(?)
+ currentY = ibit.sb(moveBits); // MoveDeltaY(?)
+ }
+ if (stateFillStyle0) { //
+ fillStyle0 = ibit.ub(numFillBits);
+ }
+ if (stateFillStyle1) {
+ fillStyle1 = ibit.ub(numFillBits);
+ }
+ if (stateLineStyle) {
+ lineStyle = ibit.ub(numLineBits);
+ }
+ if (stateNewStyles) {
fillStyleBaseIndex = fillStyles.length;
lineStyleBaseIndex = lineStyles.length;
var appendFillStyles = FlappSWFFillStyles.load(code, ibit);
var appendLineStyles = FlappSWFLineStyles.load(code, ibit);
- var extendFillStyles = [];
- var extendLineStyles = [];
- for (var i = 0, l = fillStyles.length ; i < l ; i++) {
- extendFillStyles.push(fillStyles[i]);
- }
for (var i = 0, l = appendFillStyles.length ; i < l ; i++) {
- extendFillStyles.push(appendFillStyles[i]);
- }
- for (var i = 0, l = lineStyles.length ; i < l ; i++) {
- extendLineStyles.push(lineStyles[i]);
+ fillStyles.push(appendFillStyles[i]);
}
for (var i = 0, l = appendLineStyles.length ; i < l ; i++) {
- extendLineStyles.push(appendLineStyles[i]);
+ lineStyles.push(appendLineStyles[i]);
}
- fillStyles = extendFillStyles;
- lineStyles = extendFillStyles;
ibit.a();
var numBits = ibit.ui8();
numFillBits = numBits >> 4;
numLineBits = numBits & 0x0f;
- fillStyleBaseIndex = fillStyles.length;
- lineStyleBaseIndex = lineStyles.length;
}
- if (first6bits & 1) { // StateMoveTo
- var moveBits = ibit.ub(5);
- currentX = ibit.sb(moveBits); // MoveDeltaX(?)
- currentY = ibit.sb(moveBits); // MoveDeltaY(?)
- }
- if (first6bits & 2) { // StateFillStyle0
- fillStyle0 = ibit.ub(numFillBits);
+ if (stateFillStyle0) { //
if (fillStyle0) {
fillStyle0 += fillStyleBaseIndex;
}
}
- if (first6bits & 4) { // StateFillStyle1
- fillStyle1 = ibit.ub(numFillBits);
+ if (stateFillStyle1) {
if (fillStyle1) {
fillStyle1 += fillStyleBaseIndex;
}
}
- if (first6bits & 8) { // StateLineStyle
- lineStyle = ibit.ub(numLineBits);
+ if (stateLineStyle) {
if (lineStyle) {
lineStyle += lineStyleBaseIndex;
}
edges = [currentX, currentY];
}
}
- if (edgeTypeArray.length > 1) {
+ if (edgeTypeArray.length > 0) {
shapeRecords.push(
{fillStyle0:fillStyle0, fillStyle1:fillStyle1, lineStyle:lineStyle,
edgeTypes:edgeTypeArray.join(''), edges:edges}