Actionscript 3 ActionScript-检索特定筛选器的索引
我在雪碧上有几个过滤器。鼠标悬停时,我想访问过滤器阵列中的一个过滤器,但我在尝试实现这一点时遇到了一些困难Actionscript 3 ActionScript-检索特定筛选器的索引,actionscript-3,filter,indexing,Actionscript 3,Filter,Indexing,我在雪碧上有几个过滤器。鼠标悬停时,我想访问过滤器阵列中的一个过滤器,但我在尝试实现这一点时遇到了一些困难 mySprite.filters = [new DropShadowFilter(), new GlowFilter(), new BlurFilter()]; mySprite.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEventHandler); function mouseOverEventHandler(evt:MouseE
mySprite.filters = [new DropShadowFilter(), new GlowFilter(), new BlurFilter()];
mySprite.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEventHandler);
function mouseOverEventHandler(evt:MouseEvent)
{
//obtain indexOf the GlowFilter
trace(evt.currentTarget.filters[evt.currentTarget.filters.indexOf([Object GlowFilter])]));
}
上面的代码不起作用。获取筛选器数组中特定筛选器的索引的正确方法是什么?如果我理解正确,您实际上是在尝试这样做:
var index:int = evt.currentTarget.filters.indexOf([Object GlowFilter]);
括号中的部分不是有效的Actionscript,它甚至不应该编译。您需要做的是迭代过滤器并自己测试它们,因为无法使用indexOf
搜索特定类
请尝试以下方法:
function mouseOverEventHandler(evt:MouseEvent) {
var glowFilter:GlowFilter;
for (var i:int = 0; i < evt.target.filters.length; i++) {
if (evt.target.filters[i] is GlowFilter) {
glowFilter = evt.target.filters[i];
break;
}
}
}
函数mouseOverEventHandler(evt:MouseEvent){
var-glowFilter:glowFilter;
for(var i:int=0;i
此外,如果要在阵列中摆弄过滤器,闪存将不接受就地修改,因此在更改阵列后需要重新设置阵列:
function mouseOverEventHandler(evt:MouseEvent) {
var glowFilter:GlowFilter;
for (var i:int = 0; i < evt.target.filters.length; i++) {
if (evt.target.filters[i] is GlowFilter) {
glowFilter = evt.target.filters[i];
break;
}
}
if (!glowFilter) return;
glowFilter.blurX = 10;
var filters:Array = evt.target.filters;
filters[i] = glowFilter;
evt.target.filters = filters;
}
函数mouseOverEventHandler(evt:MouseEvent){
var-glowFilter:glowFilter;
for(var i:int=0;i
如果我理解正确,您实际上是在尝试这样做:
var index:int = evt.currentTarget.filters.indexOf([Object GlowFilter]);
括号中的部分不是有效的Actionscript,它甚至不应该编译。您需要做的是迭代过滤器并自己测试它们,因为无法使用indexOf
搜索特定类
请尝试以下方法:
function mouseOverEventHandler(evt:MouseEvent) {
var glowFilter:GlowFilter;
for (var i:int = 0; i < evt.target.filters.length; i++) {
if (evt.target.filters[i] is GlowFilter) {
glowFilter = evt.target.filters[i];
break;
}
}
}
函数mouseOverEventHandler(evt:MouseEvent){
var-glowFilter:glowFilter;
for(var i:int=0;i
此外,如果要在阵列中摆弄过滤器,闪存将不接受就地修改,因此在更改阵列后需要重新设置阵列:
function mouseOverEventHandler(evt:MouseEvent) {
var glowFilter:GlowFilter;
for (var i:int = 0; i < evt.target.filters.length; i++) {
if (evt.target.filters[i] is GlowFilter) {
glowFilter = evt.target.filters[i];
break;
}
}
if (!glowFilter) return;
glowFilter.blurX = 10;
var filters:Array = evt.target.filters;
filters[i] = glowFilter;
evt.target.filters = filters;
}
函数mouseOverEventHandler(evt:MouseEvent){
var-glowFilter:glowFilter;
for(var i:int=0;i
谢谢。这应该行得通。只是示例代码中的一个小错误,我认为您的循环条件应该是i