我正在开发一个Flash应用程序,它可以从几个教程中逐行地逐个顶点绘制多边形顶点。
问题 - 我在Flash Player 10中使用它,但在Flash Player 9中需要它。当我将其转换为Flash Player 9时,我收到以下错误:
AS_Classes \ Polygon.as,第19行1120:访问未定义的属性int。
这个,“var vertexList:Vector。; vertexList = new Vector。(); “...在整个代码中也用于”graphics.moveTo(vertexList [vertexList.length-1] .x“,尽管我认为”moveTo()“与Flash 9兼容。
部分代码抛出第一个错误:
package com.AS_Classes {
import flash.display.Sprite;
public class Polygon extends Sprite{
(Line 8) public var pathCoords:Vector.<Number>;
(Line 9) public var pathCommands:Vector.<int>;
public var fillColor:uint;
public function Polygon(_vertexList,_fillColor=0x000000) {
fillColor = _fillColor;
(Line 18) pathCoords = new Vector.<Number>();
(Line 19) pathCommands = new Vector.<int>();
//first moveTo
pathCommands[0]=1;
pathCoords.push(_vertexList[0].x);
pathCoords.push(_vertexList[0].y);
//next LineTos
for (var i:int = 1; i<= _vertexList.length-1; i++) {
pathCoords.push(_vertexList[i].x);
pathCoords.push(_vertexList[i].y);
pathCommands.push(2);
}
//final LineTo
pathCommands.push(2);
pathCoords.push(_vertexList[0].x);
pathCoords.push(_vertexList[0].y);
}
public function Re_Draw():void{
this.graphics.clear();
this.graphics.beginFill(fillColor);
this.graphics.drawPath(pathCommands,pathCoords);
this.graphics.endFill();
}
}
}
答案 0 :(得分:2)
我不认为Flash Player 9支持向量。向量是一个知道期望类型的数组,类型是在胡萝卜<SomeType>
之间指定的。
简单的解决方案是将所有向量更改为简单数组。因此,在您看到Vector.<Number>
之类的内容时,只需添加Array
。
当然,这会受到影响。