出于我无法控制的原因,我目前正在处理一系列带有数字帧标签的 Flash 文件。这会导致一个问题,因为在使用 gotoAndPlay/gotoAndStop 时,Flash 似乎将字符串视为整数。
屏幕截图:
例如,gotoAndPlay('96')
实际上不会转到标签为“96”的帧,而是转到#96 帧。
现在,似乎唯一的解决方案是手动找出每个标签所在的帧,因此我不会使用 gotoAndPlay('96')
我会使用 gotoAndPlay (718)
。显然,这会很乏味(有很多帧标签),并且如果任何编辑需要移动东西,还需要更改帧编号。
有什么想法吗?无论如何,有没有办法强制闪光灯在我忽略的数字帧标签上进行gotAndPlay/Stop?
最佳答案
对我来说,这似乎是一个 Flash Player 错误(或者至少是一个设计缺陷)。但是您应该能够使用 MovieClip 上的 currentLabels
属性,这将为您提供一个 FrameLabel
对象数组。然后使用它在帧标签数字字符串和实际帧编号之间创建您自己的映射。
这是我正在讨论的一些示例代码:
var label : FrameLabel;
var mapping : Object = {};
// Create a mapping between frame label string (regardless of semantics)
// and the frame number that it corresponds to.
for each (label in myMovieClip.currentLabels) {
mapping[label.name] = label.frame;
}
/**
* Your own version of gotoAndPlay for labels, which will look into your
* recently created mapping and play the right frame (by number) for the
* given frame label.
*/
function gotoAndPlayLabel(label : String) : void
{
myMovieClip.gotoAndPlay( mapping[label] );
}
然后,您可以使用自己的 gotoAndPlayLabel()
函数通过标签跳转到(并播放)帧。
关于flash - gotoAndPlay/gotoAndStop 不适用于数字帧标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7096105/