Flash 检查两个电影剪辑是否相同?
我在检查两部电影的嘴唇是否是同一种类的 我有一个存储在字典中的MovieClip集合,然后迭代条目并将每个MovieClip与传递到函数中的MovieClip进行比较。问题是,它不起作用。也没有 有什么想法吗 干杯Flash 检查两个电影剪辑是否相同?,flash,actionscript-3,Flash,Actionscript 3,我在检查两部电影的嘴唇是否是同一种类的 我有一个存储在字典中的MovieClip集合,然后迭代条目并将每个MovieClip与传递到函数中的MovieClip进行比较。问题是,它不起作用。也没有 有什么想法吗 干杯 public function hideAllPagesExcept(activatedPage:MovieClip):void { for(var key:String in _navItems) { var mc:MovieClip
public function hideAllPagesExcept(activatedPage:MovieClip):void {
for(var key:String in _navItems) {
var mc:MovieClip = MovieClip(_navItems[key]);
if(mc is activatedPage) {
trace("Same");
}
}
}
如果这不起作用,那么你正在传递的电影唇就不是你想象的那样
public function hideAllPagesExcept(activatedPage:MovieClip):void {
for each (var mc:MovieClip in _navItems) {
if(mc == activatedPage) {
trace("Same");
}
}
}
问题在于你使用字典键的方式。使用
==
检查是否相等是可以的。行mc is activatedPage
是错误的,is
操作符用于检查对象的类型,如mc is MovieClip
您假设字典的键是字符串,这并不总是正确的。字典的要点是你可以使用任何对象作为键。如果您只需要基于字符串的键,请使用对象
通过使用for(var key:String in _navItems)
将键转换为字符串,这将导致mc
为null
,因为转换后键可能看起来像[object object]
,并且\u navItems[“[object object]”
不存在
使用
for(var键:navItems中的对象)
或像建议的那样为每个循环使用一个for。它迭代每个键的值,而不是只迭代键。没错,我在传递的参数中输入了一个错误;)谢谢