包级功能不起作用

时间:2010-08-19 14:36:12

标签: flash actionscript-3

在我看到flash.utils package中的方法后,我决定尝试一下:

// inside file Test.as

package com.tests
{
 internal function packageFunction() {

 }
}

但我得到了:

  

在源路径中找到的文件   'Test'必须具有相同的名称   作为里面的类定义   文件   'packageFunction'。

packageFunction是一个函数,而不是一个类..任何想法有什么问题?

- 更新

对于那些不知道我正在谈论的“包函数”的人,请参阅flash.util package方法。我可以像以下一样使用它:

flash.utils.getTimer();

2 个答案:

答案 0 :(得分:2)

您的代码位于Test.as中。它应该在

COM /测试/ packageFunction.as

这遵循与“普通”类相同的规则。包和主公共符号名称必须是目录路径和文件名。

答案 1 :(得分:0)

如果你的代码在Test.as类中,你已经在一个包中,你不能在包内或包外有另一个包,你可以做的是在包外面有另一个类

   package com.tests
   {
       public class Test
       {
           private var example:ClassExample = new ClassExample();
       }
   }

   //This class is only accessible in the Test class
   class ClassExample
   {
         public function ClassExample()
         {
         }
   }

您给出的示例是对包的使用的误解。文档中描述的函数可以在任何包中访问,但这并不意味着您可以在现有类中创建包来访问这些函数。