AS3中,“World”是否为保留的类名?

4

有人知道“World”是否被保留或是以这个名称建立了类吗? 当我尝试构造我创建的World类时,它会抛出编译错误:

1136: Incorrect number of arguments.  Expected 2.

但我已经检查了无数次,没有任何要求参数的地方,所有的包命名、变量类型等都是正确的,但它仍然抛出这个愚蠢的错误:/ 自己尝试一下,你会发现它确实有问题...或者我太蠢了?

当我尝试在World类中调用init函数时,它会抛出以下错误:

1061: Call to a possibly undefined method init through a reference with static type World.

天哪..


1
尝试将类名更改为其他名称,以查看是否仍存在相同的问题。 - Chunky Chunk
这可能与另一个名为“World”的实体发生冲突。据我所知,它不是当前甚至保留的关键字。 - alxx
1
当然,这是一个谜,但如果有帮助的话,我的可靠词典已经返回了这些可能的替代词:地球、球体、星球、天体、月球、星星、天体、球体、社会、圆圈、竞技场、环境、领域、领域、轨道、保护区、领域、学科、领域、行业、每个人、所有人、人类、公众、人口。 - Chunky Chunk
1
不!哈哈。我真的是想要帮忙。我经常会回去重新命名我的类和变量,因为我会想到或使用同义词词典来研究更合适的标题。 - Chunky Chunk
1
这个有点晚了,因为我今天早些时候第一次遇到了这个问题。我解开了默认的as3 CS5包含路径中的库,结果发现World是与fl.ik包相关联的顶级类;用于管理骨架动画的反向运动学库。希望这可以帮到你。World类位于ik.swc中。 - stat
显示剩余2条评论
6个回答

4

我也遇到了这个问题。我认为从FlashPlayer 10(可能是10.1,但不能确定)开始保留了它。我不得不通过在引用我的World类时使用完整的包名来解决它。

var myWorld:com.foo.World = new com.foo.World();

丑陋,但它能用!


1
是的,我也遇到了这个问题。我的游戏在使用CS4编译Flash Player 10时没有问题,但后来使用CS5编译时出现了编译错误。我认为问题可能是由于10.1版本引起的。 - Allan

1

还有其他几种可能性:

您是否正在使用Flex/FlashBuilder,并导入SWC?这些可以公开类而不揭示源代码。

或者您是从FLA编译的吗?在这种情况下,可能会有一个库符号导出到一个与您的名称冲突的ActionScript类。

另一种可能性是您正在使用的Flash编译器(无论是FlashPro还是FlashBuilder)已经错误地缓存了您之前创建的类定义。我以前遇到过这个错误几次。尝试进行项目/清理(在FlashBuilder中),或者如果您绝望了,请创建一个新项目。


嗯,不行。正在使用Flash CS5进行编码。没有库项目具有此类名称。 - Rihards

1

你的源代码路径中必须有另一个名为 World 的类。查看你的导入。

如果需要避免与其他地方的 World 类混淆,请输入完整的包路径:

var w:my.package.World = new my.package.World();

没有其他的World类。一切 - 导入,包...一切都是正确的。 - Rihards
在一个新文档中创建一个新的世界对象(new World();)会抛出一个错误,说它找不到这个类,所以这一定是你正在导入的某些东西。 - Flassari

0

我认为你应该检查构造函数中所需的参数,并通过将 = null 或其他内容传递给构造函数使它们变成可选的。

当你在库中放置一个具有构造函数中必需参数的符号时,就会出现这种“错误”。

package com.myworld
{
    public class World
    {
        public function World(parameter1:int = null, parameter2:String = null ) 
        {

        }
    }
}

0

这可能有点困难,但请尝试删除您的ASO文件(控制台>删除ASO文件),然后重新编译。

如果这不起作用,我唯一建议的是重建您的项目,在每次导入一个或一组类时测试此问题。这种方法应该能够确保您至少找到问题的来源。

以下文档类在Adobe Flash CS5中针对Flash Player 10.1.53.64(10.1)完全编译和执行:

package
{
import flash.display.Sprite;
import flash.events.Event;

public class World extends Sprite
    {
    public function World()
        {
        addEventListener(Event.ADDED_TO_STAGE, init);
        }

    private function init(evt:Event):void
        {
        removeEventListener(Event.ADDED_TO_STAGE, init);
        trace("World Document Added To Stage");
        }
    }
}

0

我刚刚自己检查了一下,即使这是一个旧帖子,已经有人回答了。 原因是我通过搜索AS3中保留关键字列表找到了这篇文章。

"World"关键字不是保留的 :) 哎呀...

这是我迄今为止在AS3中发现的保留单词/关键字列表: 如果您编辑此列表,请留下评论/来源...谢谢 有时相同的关键字可能会在不同类别的列表中出现两次...

0   :   abstract        (future keyword)
1   :   as              (reserved keyword)
2   :   boolean         (future keyword)
3   :   break           (reserved keyword)
4   :   byte            (future keyword)
5   :   case            (reserved keyword)
6   :   cast            (future keyword)
7   :   catch           (reserved keyword)
8   :   char            (future keyword)
9   :   class           (reserved keyword)
10  :   const           (reserved keyword)
11  :   continue        (reserved keyword)
12  :   debugger        (future keyword)
13  :   default         (reserved keyword)
14  :   delete          (reserved keyword)
15  :   do              (reserved keyword)
16  :   double          (future keyword)
17  :   dynamic         (syntactic keyword)
18  :   each            (syntactic keyword)
19  :   else            (reserved keyword)
20  :   enum            (future keyword)
21  :   export          (future keyword)
22  :   extends         (reserved keyword)
23  :   false           (reserved keyword)
24  :   final           (syntactic keyword)
25  :   finally         (reserved keyword)
26  :   float           (future keyword)
27  :   for             (reserved keyword)
28  :   function        (reserved keyword)
29  :   get             (syntactic keyword)
30  :   goto            (future keyword)
31  :   if              (reserved keyword)
32  :   implements      (reserved keyword)
33  :   import          (reserved keyword)
34  :   in              (reserved keyword)
35  :   include         (syntactic keyword)
36  :   instanceof      (reserved keyword)
37  :   interface       (reserved keyword)
38  :   internal        (reserved keyword)
39  :   intrinsic       (future keyword)
40  :   is              (reserved keyword)
41  :   long            (future keyword)
42  :   namespace       (syntactic keyword)
43  :   native          (reserved keyword)
44  :   native          (syntactic keyword)
45  :   new             (reserved keyword)
46  :   null            (reserved keyword)
47  :   override        (syntactic keyword)
48  :   package         (reserved keyword)
49  :   private         (reserved keyword)
50  :   protected       (reserved keyword)
51  :   prototype       (future keyword)
52  :   public          (reserved keyword)
53  :   return          (reserved keyword)
54  :   set             (syntactic keyword)
55  :   short           (future keyword)
56  :   static          (syntactic keyword)
57  :   super           (reserved keyword)
58  :   switch          (reserved keyword)
59  :   synchronized    (future keyword)
60  :   this            (reserved keyword)
61  :   throw           (reserved keyword)
62  :   throws          (future keyword)
63  :   to              (future keyword)
64  :   to              (reserved keyword)
65  :   transient       (future keyword)
66  :   true            (reserved keyword)
67  :   try             (reserved keyword)
68  :   type            (future keyword)
69  :   typeof          (reserved keyword)
70  :   use             (reserved keyword)
71  :   var             (reserved keyword)
72  :   virtual         (future keyword)
73  :   void            (reserved keyword)
74  :   volatile        (future keyword)
75  :   while           (reserved keyword)
76  :   with            (reserved keyword)

以下是三个关键词数组:

private static var reserved:Array = [
                          "as","break","case","catch","class","const","continue","default","delete",
                          "do","else","extends","false","finally","for","function","if","implements",
                          "import","in","instanceof","interface","internal","is","native","new","null",
                          "package","private","protected","public","return","super","switch","this",
                          "throw","to","true","try","typeof","use","var","void","while","with"
                          ];
private static var syntactic:Array = [
                           "each","get","set","namespace","include","dynamic","final","native","override","static"
                           ];
private static var future:Array = [
                        "abstract","boolean","byte","cast","char","debugger","double","enum","export","float",
                        "goto","intrinsic","long","prototype","short","synchronized","throws","to","transient",
                        "type","virtual","volatile"
                        ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接