ActionScript 3.0中的多边形绘制-矢量。<;数量>;向量。<;int>;drawPath()Flash播放器10对9错误

ActionScript 3.0中的多边形绘制-矢量。<;数量>;向量。<;int>;drawPath()Flash播放器10对9错误,actionscript,versioning,flash,Actionscript,Versioning,Flash,我正在开发一个Flash应用程序,从一些教程中逐顶点逐行绘制多边形 问题是,我在FlashPlayer10中都可以使用它,但在FlashPlayer9中需要它。当我将其转换为Flash Player 9时,会出现以下错误: AS_Classes\Polygon.AS,第8 1046行:找不到类型或不是编译时常量:Number AS_Classes\Polygon.AS,第9 1046行:找不到类型或不是编译时常量:int AS_Classes\Polygon.AS,第18 1120行:访问未定

我正在开发一个Flash应用程序,从一些教程中逐顶点逐行绘制多边形

问题是,我在FlashPlayer10中都可以使用它,但在FlashPlayer9中需要它。当我将其转换为Flash Player 9时,会出现以下错误:

  • AS_Classes\Polygon.AS,第8 1046行:找不到类型或不是编译时常量:Number
  • AS_Classes\Polygon.AS,第9 1046行:找不到类型或不是编译时常量:int
  • AS_Classes\Polygon.AS,第18 1120行:访问未定义的属性号
  • AS_Classes\Polygon.AS,第19 1120行:访问未定义的属性int

    • 如何将其转换为Flash Player 9
    • 有简单的替代品吗?我认为flash10就是“drawPath()”
这是“var vertexList: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();
        }
    }
}
package com.AS\u类{
导入flash.display.Sprite;
公共类多边形扩展Sprite{
(第8行)公共变量路径坐标:向量。;
(第9行)公共变量路径命令:向量。;
公共颜色:uint;
公共函数多边形(_vertexList,_fillColor=0x000000){
fillColor=\u fillColor;
(第18行)pathCoords=新向量。();
(第19行)路径命令=新向量。();
//第一步
路径命令[0]=1;
push(_vertexList[0].x);
push(_vertexList[0].y);
//下一行

对于(var i:int=1;i我认为Flash Player 9中不支持向量。向量是一个知道预期类型的数组,类型在胡萝卜之间指定

简单的解决方案是将所有向量更改为简单数组。因此,在看到类似于
Vector.
的内容时,只需将
Array


当然,还有性能问题。

你对性能问题的评论让我做了一些研究,很有趣,我不知道向量可以比数组快那么多。