private void  encodeMorphFillstyles(MorphFillStyle[] fillStyles, SwfEncoder w, int code)
		{
			int count = fillStyles.Length;
			if (count >= 0xFF)
			{
				w.writeUI8(0xFF);
				w.writeUI16(count);
			}
			else
			{
				w.writeUI8(count);
			}
			
			for (int i = 0; i < count; i++)
			{
				encodeMorphFillstyle(fillStyles[i], w, code);
			}
		}
		private void  encodeMorphFillstyle(MorphFillStyle style, SwfEncoder w, int code)
		{
			w.writeUI8(style.type);
			switch (style.type)
			{
				
				case FillStyle.FILL_SOLID:  // 0x00
					encodeRGBA(style.startColor, w);
					encodeRGBA(style.endColor, w);
					break;
				
				case FillStyle.FILL_GRADIENT: 
				// 0x10 linear gradient fill
				case FillStyle.FILL_RADIAL_GRADIENT: 
				// 0x12 radial gradient fill
				case FillStyle.FILL_FOCAL_RADIAL_GRADIENT:  // 0x13 focal radial gradient fill
					encodeMatrix(style.startGradientMatrix, w);
					encodeMatrix(style.endGradientMatrix, w);
					encodeMorphGradient(style.gradRecords, w);
					if (style.type == FillStyle.FILL_FOCAL_RADIAL_GRADIENT && code == flash.swf.TagValues_Fields.stagDefineMorphShape2)
					{
						w.writeSI16(style.ratio1);
						w.writeSI16(style.ratio2);
					}
					break;
				
				case FillStyle.FILL_BITS: 
				// 0x40 tiled bitmap fill
				case (FillStyle.FILL_BITS | FillStyle.FILL_BITS_CLIP): 
				// 0x41 clipped bitmap fill
				case (FillStyle.FILL_BITS | FillStyle.FILL_BITS_NOSMOOTH): 
				// 0x42 tiled non-smoothed fill
				case (FillStyle.FILL_BITS | FillStyle.FILL_BITS_CLIP | FillStyle.FILL_BITS_NOSMOOTH):  // 0x43 clipped non-smoothed fill
					w.writeUI16(dict.getId(style.bitmap));
					encodeMatrix(style.startBitmapMatrix, w);
					encodeMatrix(style.endBitmapMatrix, w);
					break;
				
				default: 
					assert(false);
					//throw new IOException("unrecognized fill style type: " + style.type);
					break;
				
			}
		}
示例#3
0
		private void  printMorphFillStyles(MorphFillStyle[] fillStyles)
		{
			for (int i = 0; i < fillStyles.Length; i++)
			{
				MorphFillStyle fillStyle = fillStyles[i];
				indent();
				out_Renamed.Write("<fillstyle");
				out_Renamed.Write(" type='" + fillStyle.type + "'");
				if (fillStyle.type == FillStyle.FILL_SOLID)
				{
					out_Renamed.Write(" startColor='" + printRGBA(fillStyle.startColor) + "'");
					out_Renamed.Write(" endColor='" + printRGBA(fillStyle.endColor) + "'");
				}
				if ((fillStyle.type & FillStyle.FILL_LINEAR_GRADIENT) != 0)
				{
					// todo print linear or radial
					out_Renamed.Write(" gradient='" + formatMorphGradient(fillStyle.gradRecords) + "'");
					out_Renamed.Write(" startMatrix='" + fillStyle.startGradientMatrix + "'");
					out_Renamed.Write(" endMatrix='" + fillStyle.endGradientMatrix + "'");
				}
				if ((fillStyle.type & FillStyle.FILL_BITS) != 0)
				{
					// todo print tiled or clipped
					out_Renamed.Write(" idref='" + idRef(fillStyle.bitmap) + "'");
					out_Renamed.Write(" startMatrix='" + fillStyle.startBitmapMatrix + "'");
					out_Renamed.Write(" endMatrix='" + fillStyle.endBitmapMatrix + "'");
				}
				//UPGRADE_TODO: Method 'java.io.PrintWriter.println' was converted to 'System.IO.TextWriter.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintWriterprintln_javalangString'"
				out_Renamed.WriteLine(" />");
			}
		}