首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flash AS3 -对象未被设置为空

Flash AS3 -对象未被设置为空
EN

Stack Overflow用户
提问于 2009-05-12 21:13:03
回答 5查看 3.8K关注 0票数 2

我有一个菜单系统,我在Flash中构建的,允许您选择一个项目,并将其上下移动。如果将对象从菜单中移除,我希望选择的项设置为null,因此不再尝试移动。

我有一个全局变量(对于当前的电影剪辑时间线):

代码语言:javascript
复制
var selectedPlaylistItem:MovieClip;

存储选定的菜单项(菜单项只是电影剪辑),如果删除该菜单项,则将所选项目设置为null:

代码语言:javascript
复制
function removeFromPlaylist(sender:playlist_content_item) {
    if(sender == selectedPlaylistItem) {
        //Not sure why this isn't working, but at some point I need to figure it out.
        selectedPlaylistItem = null;
        trace(selectedPlaylistItem);

该跟踪将在没有任何问题的情况下显示空,但在我的下一个将项向上移动的函数中,在将其设置为空之后,它仍然被设置为删除之前的对象:

代码语言:javascript
复制
function playlistUp(sender:MovieClip) {
    trace(selectedPlaylistItem);

该跟踪将显示原始对象。

有人知道为什么那行不通吗?为什么在设置成这样之后,它就不能保持为空呢?

谢谢

更新:

所以我试着看看我能不能弄清楚这是怎么回事

代码语言:javascript
复制
    this.selectedPlaylistItem = null;
    trace(selectedPlaylistItem);
    setTimeout(function() {trace(selectedPlaylistItem);}, 4000);

但是,当跟踪发生4秒后,它仍然是选定的对象,即使后面的跟踪显示为null,而且我在代码中到处查找,但是没有任何地方会被重置。

EN

Stack Overflow用户

发布于 2009-05-16 19:45:05

您的代码是否恰好超过两帧或更多帧?我猜它又在运行代码了。所以在脚本的进程中,它将被设置为null,而当前的框架还没有呈现,但是如果它循环回(例如) frame 1,那么它可能会被调用一些代码来再次设置该变量,因此在4秒后会看到它被设置为某个值。

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

https://stackoverflow.com/questions/854897

复制
相关文章

相似问题

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