Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3矢量上的错误1000_Actionscript 3_Flash Cs5 - Fatal编程技术网

Actionscript 3 AS3矢量上的错误1000

Actionscript 3 AS3矢量上的错误1000,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,所以我以前从未在Flash中使用过向量,我想用一个自定义对象编写一个向量测试应用程序。但我得到:错误1000:当我尝试启动应用程序时,对Vector的引用不明确。我一辈子都搞不清楚到底出了什么事。我试着不使用自定义对象,只是从在线教程中实例化一个字符串向量,我得到了同样的结果 以下是我得到的: package { import TestPlayer; // The custom player class import flash.display.MovieClip; public class

所以我以前从未在Flash中使用过向量,我想用一个自定义对象编写一个向量测试应用程序。但我得到:
错误1000:当我尝试启动应用程序时,对Vector的引用不明确。我一辈子都搞不清楚到底出了什么事。我试着不使用自定义对象,只是从在线教程中实例化一个字符串向量,我得到了同样的结果

以下是我得到的:

package
{
import TestPlayer; // The custom player class
import flash.display.MovieClip;

public class Vector extends MovieClip
{
    private var array:Array = new Array();
    private var vector:Vector.<TestPlayer>;

    public function Vector()
    {
        array[0] = [0, 0, "Bob", false];
        array[1] = [1, 0, "Frank", true];
        array[2] = [2, 1, "Sarah", true];
        Load();
    }

    private function Load():void
    {
        var aPlayer:Player = null;
        vector = new Vector.<TestPlayer>();

        try
        {
            var numRows:int = array.length;

            for (var i = 0; i < numRows; i++)
            {
                aPlayer = new Player();

                aPlayer.playerID = array[i][0];
                aPlayer.playerName = array[i][1];
                aPlayer.playerTypeID = array[i][2];
                aPlayer.hasProgress = array[i][3];

                vector.push(aPlayer);
            }
        }
        catch (error:Error) { }
    }
}

我不知道这是否重要,但我在FlashCS5中工作,我有一个导入类的空白FLA。到目前为止没有其他错误。希望你能帮忙。如果您需要更多信息,请告诉我,谢谢。

模棱两可的引用是因为您遇到命名冲突。您编写的类名为“Vector”,它无法与顶级类
Vector
区分。修复方法很简单,避免将类命名为与预先存在的类相同的名称

如果两个类都属于不同的名称空间,则可以重用类名,只要在调用该类时使用它们的完全限定名即可

假设您有一个类:

package foo.bar
{
  class MovieClip
  ...
}
您可以按如下方式实例化这两种类型的MovieClips:

flashMovieClip = new flash.display.MovieClip();
myMovieClip = new foo.bar.MovieClip();

不幸的是,您的
Vector
和flash
Vector
都存在于顶级名称空间中,因此(AFAIK)如果不重命名您的类,就无法消除歧义。为了简单起见,避免命名冲突,你应该是金黄色的。

天哪,我现在觉得自己太蠢了(我讨厌错过这样的小事情。非常感谢,这就解决了它。我马上就做标记,斯塔克不会让我的。
flashMovieClip = new flash.display.MovieClip();
myMovieClip = new foo.bar.MovieClip();