ActionScript 3.0中的多边形绘制 - Vector。<number> Vector。<int> drawPath()Flash Player 10 vs 9错误</int> </number>

时间:2011-10-20 20:37:37

标签: actionscript versioning flash

我正在开发一个Flash应用程序,它可以从几个教程中逐行地逐个顶点绘制多边形顶点。

问题 - 我在Flash Player 10中使用它,但在Flash Player 9中需要它。当我将其转换为Flash Player 9时,我收到以下错误:

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

    • 如何将其转换为Flash Player 9?
    • 这些是否有简单的替代品?我认为它是“drawPath()”即Flash 10。

这个,“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();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

我不认为Flash Player 9支持向量。向量是一个知道期望类型的数组,类型是在胡萝卜<SomeType>之间指定的。

简单的解决方案是将所有向量更改为简单数组。因此,在您看到Vector.<Number>之类的内容时,只需添加Array

当然,这会受到影响。