【问题标题】:use actionscript file in flex library在 flex 库中使用 actionscript 文件
【发布时间】:2011-09-06 02:17:37
【问题描述】:
我想制作自己的 flex 库,并在这个库中使用自己的 actionscript 文件,我将在这个库中的更多组件中使用它。这个文件内容例如只有代码
public function computeSum(a:Number, b:Number):Number {
return a + b;
}
但是当我单击 File-New-Actionscript 文件(文件名 - 确定)时可以创建此文件时,在问题视图中错误:在源路径中找到的文件必须具有外部可见的定义。如果文件中的定义是外部可见的,请将定义放入包中
感谢帮助
【问题讨论】:
标签:
apache-flex
actionscript-3
mxml
【解决方案1】:
首先,您需要创建一个类(和一个包)并将该方法放入其中(而不仅仅是放入一个空的 AS 文件中),其次,如果您希望能够在不创建实例的情况下访问该方法该类使此方法static。
【解决方案2】:
您应该将它封装在类中,以便与import 指令一起使用,否则您可以将它与include 一起使用
另一种方法是创建一个“助手”类,或所谓的“单例”类。
- 一个只有 1 个实例的类,静态创建。
在这个类上,你可以公开你需要的库函数并在任何地方使用它们。
package
{
public class Singleton
{
private static var singleton : Singleton
public static function getInstance() : Singleton
{
if ( singleton == null )
singleton = new Singleton();
return singleton;
}
public function Singleton()
{
}
public function visibleTroughtTheSingletonfunction( arg1 : int ... ) : void
{
}
public static function directlyVisiable() : void
{
}
}
}
访问单例将类似于:
Singleton.getInstance.visibleTroughtTheSingletonfunction( 1 );
或
Singleton.directlyVisiable();
取决于您的需求。
【解决方案3】:
如果您在运行时不需要更改类文件,则将动作类编译到 swc 库中。
创建一个 Action 脚本项目并在您找到 .swc 库文件的 bin 文件夹中编译它。将该 .swc 包含到您的项目中。