我尝试使用FTD在AS3中创建一个全局文件。 它是由此代码导入的文件
<fx:Script source="../../../framework/util/util.as"/>
并且项目中的所有类都可以访问。 就像这样没有包或类。
import flash.events.MouseEvent;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.core.FlexGlobals;
import mx.core.UIComponent;
import mx.formatters.DateFormatter;
import mx.managers.ToolTipManager;
import mx.messaging.Channel;
import mx.messaging.events.ChannelEvent;
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.utils.ObjectUtil;
import spark.components.TitleWindow;
import spark.events.TitleWindowBoundsEvent;
private var channelSet:ChannelSet = new ChannelSet();
private var customChannel:Channel;
public function showErrorImmediately(target:UIComponent):void
{
// we have to callLater this to avoid other fields that send events
// that reset the timers and prevent the errorTip ever showing up.
target.callLater(showDeferred, [target]);
}
....
在FB中,这个文件工作正常但是当我迁移到FDT时会发生很多错误。
任何人都可以帮助我吗?
答案 0 :(得分:1)
FDT不支持MXML脚本标记的source属性:
<fx:Script source="../../../framework/util/util.as"/>
如果您将文件 util.as 中的代码视为脚本块的内容,则该代码有效。 我假设您将文件 util.as 放在源文件夹中的某个包中。 在这种情况下,FDT假定它是一个普通的编译单元。一个普通的编译单元 必须从包开始,因此FDT抱怨这一点。
通常,使用include语句或source属性是一种不好的做法,这就是为什么FDT不支持它。
在您的情况下,我会考虑将您自己的抽象mxml组件定义为包含方法和字段的所有组件的基类。