Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 AS3过滤器发光而不是粗花呢_Actionscript 3_Flash_Filter_Dropshadow_Glow - Fatal编程技术网

Actionscript 3 AS3过滤器发光而不是粗花呢

Actionscript 3 AS3过滤器发光而不是粗花呢,actionscript-3,flash,filter,dropshadow,glow,Actionscript 3,Flash,Filter,Dropshadow,Glow,我正在做一个带有两个过滤器的按钮,当用户将光标放在鼠标上方时,两个过滤器将插入,当光标退出时,两个过滤器将插入。非常基本的东西 滤镜是辉光和阴影滤镜。辉光应用于文本,而DropShadow应用于按钮背景(一个简单的矩形) 这里的问题是GlowIn的转换不起作用。当鼠标悬停在过滤器上时,它会立即以完全alpha应用过滤器。不过,GlowOut是有效的 虽然它被设置为0.25秒,但为了确定,我用了整整5秒的时间尝试了它,但它仍然不起作用,所以这不是时间问题 这是我的密码: import caurin

我正在做一个带有两个过滤器的按钮,当用户将光标放在鼠标上方时,两个过滤器将插入,当光标退出时,两个过滤器将插入。非常基本的东西

滤镜是辉光和阴影滤镜。辉光应用于文本,而DropShadow应用于按钮背景(一个简单的矩形)

这里的问题是GlowIn的转换不起作用。当鼠标悬停在过滤器上时,它会立即以完全alpha应用过滤器。不过,GlowOut是有效的

虽然它被设置为0.25秒,但为了确定,我用了整整5秒的时间尝试了它,但它仍然不起作用,所以这不是时间问题

这是我的密码:

import caurina.transitions.Tweener;
import caurina.transitions.properties.FilterShortcuts;
import flash.filters.GlowFilter;
FilterShortcuts.init();

texto.mouseEnabled = false;

this.addEventListener(MouseEvent.MOUSE_OVER, FiltersIn);
this.addEventListener(MouseEvent.MOUSE_OUT, FiltersOut);

var glow = new GlowFilter(0xFFFFFF, 0, 5, 5, 3, 250);
texto.filters = [glow];

function FiltersIn(MouseEvent):void{
    Tweener.addTween(this, {_DropShadow_distance:5, _DropShadow_alpha:1, _DropShadow_blurX:5, _DropShadow_blurY:5, time:0.25, transition:"easeOutCubic"});
    Tweener.addTween(texto, {_Glow_alpha:100, time:0.25, transition:"easeOutCubic"});
}
function FiltersOut(MouseEvent):void{
    Tweener.addTween(this, {_DropShadow_distance:0, _DropShadow_alpha:0, _DropShadow_blurX:0, _DropShadow_blurY:0, time:0.25, transition:"EaseInCubic"});
    Tweener.addTween(texto, {_Glow_alpha:0, time:0.25, transition:"easeInCubic"});
}

编辑:由于混杂因素,先前的答案不正确!请查看新答案。

专业提示:不用麻烦使用Tweener: 使用GreenSock的Tweenmax或Starling的Juggler-它们只是最好的

问题是辉光过滤器的alpha属性范围为0到1,而不是0到100。但是Tweener仍然尊重你提供给它的值,所以在插值alpha值时,它会跳到1之外,在跳到100的过程中,可能是在第一帧。这就是为什么你会看到它立即满阿尔法。如果你把100换成1,那就可以解决问题了

反向tween仍能按预期工作的原因是,alpha值被限制在1,因此,即使有人试图将其设置为50、60等100,当辉光过滤器存储实际值时,它将其限制在1,允许反向tween在1和0之间平滑插值

以下是就地编辑:

import caurina.transitions.Tweener;
import caurina.transitions.properties.FilterShortcuts;
import flash.filters.GlowFilter;
FilterShortcuts.init();

texto.mouseEnabled = false;

this.addEventListener(MouseEvent.MOUSE_OVER, FiltersIn);
this.addEventListener(MouseEvent.MOUSE_OUT, FiltersOut);

var glow = new GlowFilter(0xFFFFFF, 0, 5, 5, 3, 250);
texto.filters = [glow];

function FiltersIn(MouseEvent):void{
    Tweener.addTween(this, {_DropShadow_distance:5, _DropShadow_alpha:1, _DropShadow_blurX:5, _DropShadow_blurY:5, time:0.25, transition:"easeOutCubic"});
    Tweener.addTween(texto, {_Glow_alpha:1, time:0.25, transition:"easeOutCubic"});
}
function FiltersOut(MouseEvent):void{
    Tweener.addTween(this, {_DropShadow_distance:0, _DropShadow_alpha:0, _DropShadow_blurX:0, _DropShadow_blurY:0, time:0.25, transition:"EaseInCubic"});
    Tweener.addTween(texto, {_Glow_alpha:0, time:0.25, transition:"easeInCubic"});
}

我交换了Caurina文件夹中有FLA和SWV的文件,重新启动了flash,但它不起作用,我可能已经在使用最新版本了。我从未使用过SWC文件,但当我试图打开它们时,它会显示无法读取文件。我做错什么了吗?啊,你知道吗?实际上,我必须在将源代码版本替换为SWC的同时纠正错误行。仅就您的信息而言,这是相同的代码,但为了方便使用一个文件而预编译。您可以通过转到“文件>动作脚本设置”,然后将它们添加到“库路径”选项卡来使用它们。所以上面的说法不正确,对不起。我现在就提交一个新答案!这很有效,谢谢!解释为什么会发生的额外要点。aww被否决了吗?那么TweenMax.tostack,.3,{autoAlpha:0};: