Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 ActionScript-检索特定筛选器的索引_Actionscript 3_Filter_Indexing - Fatal编程技术网

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