首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将根目录转换为电影剪辑

无法将根目录转换为电影剪辑
EN

Stack Overflow用户
提问于 2014-03-31 07:48:07
回答 2查看 206关注 0票数 0

我在主时间线中的舞台上调用了Movieclip中的代码

代码语言:javascript
复制
if(MovieClip(root).isWithinRange(MovieClip(e.currentTarget), MovieClip(root).hero,     10))
{
    if(e.currentTarget.getStatus() == 0)
    {
        e.currentTarget.unlock();
    }
}

它在根目录(MovieClip)给出了一个错误。我试着跟踪它,它给了我同样的错误。

代码语言:javascript
复制
Type Coercion failed: cannot convert flash.display::Stage@4e131e9 to flash.display.MovieClip.

跟踪根可以得到Object Stage。

所以我不能将Stage对象转换为MovieClip,但是当我尝试跳过强制转换时,它不能使用该方法,因为它说明它是一个静态类型。如何访问此方法?

EN

回答 2

Stack Overflow用户

发布于 2014-03-31 10:03:20

这是因为stage是DisplayObject而不是MovieClip。因此,您可以将其转换为MovieClip:

代码语言:javascript
复制
var stageRef:MovieClip = this.parent as MovieClip; 

如果对象放置在stage - stage.addChild(yourObject);上

或者您可以通过DisplayObject访问它(确保导入flash.display.DisplayObject;)

代码语言:javascript
复制
DisplayOject(stage)["nameOfUrObject"];
票数 0
EN

Stack Overflow用户

发布于 2014-03-31 16:36:26

这里真正的答案是Stage不是MovieClip。句号。

你不能做你想做的事情,我显然不能理解这个isWithinRange方法是从哪里来的?如果你想知道答案,可以问一些具体的问题。我已经回答了这个问题,不幸的是,它对您没有太大帮助:)

附注:在阅读完所有评论后-这里有一个可能对你有帮助的链接:AS3 - Call function in root timeline from class

让一切都保持在时间线上是一个非常非常糟糕的方法(很抱歉这么说)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22751441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档