如何通过选择一行并按下删除按钮来删除 MovieClip?

Posted

技术标签:

【中文标题】如何通过选择一行并按下删除按钮来删除 MovieClip?【英文标题】:How to remove MovieClip by selecting a row and pressing a delete button? 【发布时间】:2016-04-12 07:51:43 【问题描述】:

我有一个数据网格,其中添加了行。每当添加一行时,就会向舞台添加一个影片剪辑。如果单击行和按钮,我添加了一个按钮来删除数据网格中的一行,并且所有这些都运行良好。

但是,当我尝试删除与数据网格中该行相关的影片剪辑时,它不起作用。

我的代码是:

function removeloaditem(event:MouseEvent) 
datagrid.removeItemAt(datagrid.selectedIndex);
removeChild(MovieClip(datagrid.selectedIndex);

【问题讨论】:

【参考方案1】:
removeChild(MovieClip(datagrid.selectedIndex);

你需要了解这行代码要做什么。

datagrid.selectedIndex

这个变量只是一个数字。因此,您正在尝试将 Number 投射到 MovieClip。

MovieClip(1)

那行不通。您需要对 actual MovieClip 对象的引用。无论您在何处创建 MovieClip 对象,都需要存储对该对象的引用。你可以让一个普通的对象存储你所有的引用。

var objectList:Object = ;

然后,无论您在何处创建 MovieClip,都添加以下行:

objectList["reference_" + datagrid.selectedIndex] = "movieclip variable";

将“movieclip 变量”替换为对您的movieclip 对象的引用。之后,将您当前的 removeChild 行替换为以下两行:

var movieclip = objectList["reference_" + datagrid.selectedIndex]
moveclip.parent.removeChild(movieclip);

【讨论】:

哦,我明白你所说的变量只是一个数字是什么意思。但我不明白关于用参考替换“movieclip 变量”的部分。这是否意味着“reference_”和“movieclip variable”是同一个术语?并且是否引用了该影片剪辑的某种名称? 您正在创建一个新的影片剪辑添加到舞台,对吧?你一定是。就像“var movieclip = new MovieClip();” “movieclip 参考”只是您的movieclip 实例变量名称应该放在哪里的占位符文本。因此,如果您正在执行“var someMovieClip = new MovieClip()”,那么您将用“someMovieClip”替换“movieclip reference”......明白了吗? 是的,我明白了!当我在 1 个影片剪辑上尝试时,它工作正常。但是,如果我有多个相同图像的影片剪辑怎么办?当我尝试它时,它会删除所有电影剪辑,考虑到它们都具有相同的名称,这是有道理的。我已经尝试通过在影片剪辑实例名称的后面添加越来越多的数字来使名称不同,但它似乎不起作用。

以上是关于如何通过选择一行并按下删除按钮来删除 MovieClip?的主要内容,如果未能解决你的问题,请参考以下文章

如何使删除按钮删除JTable中的行?

一旦选择并按下 QButton,如何从 QListWidget 对象中获取项目作为字符串

从 tableView 中删除一行,在 section 中有多行

行未在数据网格 C# 中删除

java删除一个组件

如何从 .CSV 文件中删除不合适的行并使用 C# 再次保存该文件?