我的Flex项目有一个AS3类:
package system
{
import mx.managers.PopUpManager;
import ui.Eula;
public class Dialogs
{
public function Dialogs(){}
public static function showEula():void {
var eulaWindow:Eula = new Eula;
PopUpManager.addPopUp(eulaWindow,MyMainMXML,true);
}
}
}MyMainMXML是我的基本MXML文件。它不会让我通过我的课提到它。我该怎么做?编译器错误如下:
1067:将类型类的值隐式强制为不相关的类型flash.display:DisplayObject.
主MXML文件是一个星星之火WindowedApplication,所以我假设它是DisplayObjects的一部分。
编辑:
我尝试使用FlexGlobals,如下所示,但它发出了一个错误,即1118:使用静态类型对象对值进行隐式强制,使其可能与flash.display:DisplayObject.无关。
package system
{
import mx.core.FlexGlobals;
import mx.managers.PopUpManager;
import ui.Eula;
public class Dialogs
{
public function Dialogs(){}
public static function showEula():void {
var eulaWindow:Eula = new Eula;
PopUpManager.addPopUp(eulaWindow,FlexGlobals.topLevelApplication,true);
}
}
}发布于 2012-02-27 14:13:10
使用FlexGlobals.topLevelApplication会返回一个类型为object的对象(是的,我知道,这听起来很红:P)。但是addPopUp第二个参数如果是DisplayObject。因此,这应该起到了作用:
PopUpManager.addPopUp(eulaWindow,FlexGlobals.topLevelApplication as DisplayObject,true);我不能百分之百确定为什么FlexGlobals.topLevelApplication不返回DisplayObject,这可能是一个低级别的问题。
发布于 2012-02-27 12:40:00
您可以从
FlexGlobals.topLevelApplication
mx.core.FlexGlobals.topLevelApplication:顶级应用程序对象,而不管对象在文档树中执行的位置。此对象的类型为spark.components.Application或mx.core.Application。
https://stackoverflow.com/questions/9465063
复制相似问题