在Flex 4中进行强制转换时,你可以将“任何东西”转换为“任何东西吗?”

时间:2011-03-21 12:39:16

标签: flash flex actionscript casting

我正在构建一个自定义组件,我需要将传递给该方法的事件转换为鼠标事件。我可以这样做,但它告诉我,我得到一个对象的空引用。我就是这样称呼的。

public function dragStart(e:MDIWindowEvent): void {
    var mouse:MouseEvent = (e.currentTarget as MouseEvent);
    trace(mouse.localX);//<-----Null Error
}

如何将MDIWindowEvent转换为MouseEvent?如果可以的话。

3 个答案:

答案 0 :(得分:3)

您正在投射活动目标,而不是它不起作用的事件。 此外,您不能将MDIWindowEvent转换为MouseEvent。

你可以尝试的是:

public function dragStart(e:MDIWindowEvent): void {
    trace(e.currentTarget.mouseX);
}

罗布

答案 1 :(得分:1)

如果MDIWindowEvent没有扩展MouseEvent,这将无效。

答案 2 :(得分:1)

如果无法转换对象,as将返回已转换的对象或null。如果它不是你想要强制转换的子类,那么就无法进行渲染。这样,如果演员表无法按计划运行,您就可以恢复。