Apache flex AS3-It';可能有包变量(或常量)
不管这是否是一个好的实践,我读到您可以有包变量(或常量),所以我尝试了以下方法:Apache flex AS3-It';可能有包变量(或常量),apache-flex,actionscript-3,Apache Flex,Actionscript 3,不管这是否是一个好的实践,我读到您可以有包变量(或常量),所以我尝试了以下方法: // globals.as package global { public const someConst:String = 'theValueOfTheConst'; public var someVar:String = 'theValueOfTheVar'; } // SomeClass.as package pack.to.the.class { // ... import
// globals.as
package global
{
public const someConst:String = 'theValueOfTheConst';
public var someVar:String = 'theValueOfTheVar';
}
// SomeClass.as
package pack.to.the.class
{
// ...
import global.*;
// ...
// ...
public function aFunction():void
{
trace(someConst);
trace(someVar);
}
// ...
}
我得到的只是一个编译时错误,上面写着“全局的定义:someConst尚未找到”(someVar也是如此)
我正在使用Flex,我看到了一些问题。那么,这可能吗?我可以在不使用类的情况下使用包变量(或常量)吗
谢谢
PS:包名、变量名和函数名都是一个例子,我在测试时使用了其他名称。我非常怀疑。。。如果你可以的话,我会怀疑这比简单地制作一个全球课程更费劲。我非常怀疑。。。如果可以的话,我会怀疑这比简单地创建一个全局类更费劲。为了它的价值,我自己尝试了测试,但也无法让它工作,即使变量和对它们的引用在同一个包中。为了它的价值,我自己尝试了测试,但也无法让它工作,即使变量和对它们的引用在同一个包中。当然可能,但不鼓励。在源/根(编译器设置中的主源文件夹)中,放置全局类: 包装 { }
(哦……我正在使用flex进行测试,但她成功了——不需要导入以在不同的包区域设置中获取某些常量)当然可能,但不鼓励这样做。在源/根(编译器设置中的主源文件夹)中,放置全局类: 包装 { } (哦……我正在使用flex进行测试,但她工作了——不需要导入以在不同的包区域设置中获取某些常量)如果您更改
public const someConst:String = 'theValueOfTheConst';
到
那对我来说就行了。YMMV.如果您更改
public const someConst:String = 'theValueOfTheConst';
到
那对我来说就行了。YMMV.答案很简单。您的文件中可能只有一个定义。把它们分成两个文件,它就可以工作了 文件的命名必须与变量的命名完全相同。因此,在您的示例中,这将起作用:
//someConst.as
package global
{
public const someConst:String = 'theValueOfTheConst';
}
//someVar.as
package global
{
public var someVar:String = 'theValueOfTheVar';
}
每个“编译单元”(用于*.as文件的奇特术语)可能只有一个可见的定义。也不能将两个类放在同一个文件中。但是,您可以有任意多个匿名定义。答案很简单。您的文件中可能只有一个定义。把它们分成两个文件,它就可以工作了 文件的命名必须与变量的命名完全相同。因此,在您的示例中,这将起作用:
//someConst.as
package global
{
public const someConst:String = 'theValueOfTheConst';
}
//someVar.as
package global
{
public var someVar:String = 'theValueOfTheVar';
}
每个“编译单元”(用于*.as文件的奇特术语)可能只有一个可见的定义。也不能将两个类放在同一个文件中。但是,您可能有任意多个匿名定义。或者我做错了什么,或者我很愚蠢。。因为我没有工作,或者我做错了什么,或者我很愚蠢。。因为我不为我工作,我总是这样。一个国际班。但我看到了,想知道这是否可行,我总是这么做。一个国际班。但我看到了,想知道这是否可行,这就是问题所在。。谢谢这就是问题所在。。谢谢也许Flex编译器的工作方式不同,但在Flex中(也许您可以将其转换为as3),有一个“源路径”设置。这是包命名的起始文件夹(如果您将所有开发默认为“src”文件夹,并且在src中有一个“com”文件夹,那么com文件夹中的包名称看起来像“package com{}”.所以,对我来说,如果我将global.as放在主源文件夹中,并按上面所述的方式键入,我就不需要导入someConst.但是,正如我所说的…Flex.对你来说可能完全不同。祝你好运!请参阅Joa Ebert的答案,也许你可以将global.as文件命名为someConst.as(这是我的问题,文件名)也许Flex编译器的工作方式有所不同,但在Flex中(也许您可以将其转换为as3)有一个“源路径”设置。这是包命名的起始文件夹(如果您将所有开发默认为“src”文件夹,并且在src中有一个“com”文件夹,那么com文件夹中的包名称如下所示“package com{}”。所以,对我来说,如果我把global.as放在主源文件夹中,并按照上面写的方式键入它,我就不需要导入someConst。但是,正如我所说的……Flex。对你来说可能完全不同。祝你好运!见Joa Ebert的答案,也许你可以将global.as文件命名为someConst.as(这是我的问题,文件名)