将过滤器应用于 AS3 中的所有内容

2024-04-12

我正在尝试在 AS3/Flex SDK 中添加过滤器。我可以为任何一个对象添加一个过滤器 - 但我想将过滤器应用到一切那是某个对象的子对象。

假设弹出一个暂停窗口,暂停窗口下方的所有内容都会变得模糊。

将过滤器应用于每个单独的对象(例如:迭代列表)是行不通的,因为每个对象的过滤器可能会重叠并且看起来非常难看。

有谁知道该怎么做?有没有办法应用过滤器一切?

这是代码的简化版本:

myCanvas.graphics.beginFill(0x00FF00,0.5);
myCanvas.graphics.drawRect(0,0,100,100);
myCanvas.addChild(new vectorImage());
myCanvas.addChild(new vectorImage2());
var blur:BlurFilter = new BlurFilter();
myCanvas.filters = [blur];

直接绘制的图形和子图形都不会应用模糊效果。我尝试更改默认值并尝试其他过滤器:

var colors:Array = [0xEDEDED, 0xCCCCCC, 0x211b28, 0x211b28, 0x211b28];
var alphas:Array = [0, 1, .35, .5, 1];
var ratios:Array = [0, 50, 100, 115, 155];              
myCanvas.filters = [new GradientGlowFilter(0, 0, colors, alphas, ratios, 50, 50, 1, 3, "full", false)];

具有相同的效果(也就是说:没有)。有效的是:

var vi:MovieClip = new vectorImage();
myCanvas.addChild(vi);
vi.filters = [blur];

但由于多个过滤器未正确对齐而产生上述问题。


在我看来,你有两种可能的方法:

  • 将您想要模糊的所有内容与其余内容一起放入单独的容器中,并将滤镜应用到该容器。

  • 创建舞台大小(或要模糊的部分)的 BitmapData,绘制舞台,应用滤镜,将其添加到显示列表(在所有内容之上),并在其之上添加所有不应该的精灵变得模糊(我想象一个警报框或类似的)。请注意,您应该在调整大小时更新 BitmapData。

更新: 你的代码似乎是正确的,但我不熟悉Flex,所以也许你不能向Canvas添加过滤器(它是一个DisplayObject吗?)...也许将他的cacheAsBitmap设置为false可以工作(有时它是相当有问题的)...不管怎样,像这样的事情应该可以解决问题:

var container=new Sprite();
myCanvas.addChild(container);
container.addChild(new vectorImage());
container.addChild(new vectorImage2());
container.filters=[blur];

或者也许 Canvas 已经有一个容器属性......

干杯...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将过滤器应用于 AS3 中的所有内容 的相关文章

  • 在过滤器Javascript中添加两个条件

    我试图在过滤器中添加两个条件 但只有一个有效 第一个条件检查单词之间是否有空格 第二个条件检查words length 是否大于给定的最小长度 如果字符串是 hello world 然后我需要在分割它时得到 hello world 相反 我
  • Flash 影片的 Div Z-Index 问题

    我有两个简单的 HTML div 一个包含 flash 电影 另一个 div 包含简单文本 现在我的问题是我必须将文本 div 放到 flash 电影 div 上 我正在做的是将两个 div 的位置设置为 CSS 中的 Absolute 并
  • 如何在flex中绘制虚线

    经过一番搜索和阅读 Graphics 类文档后 我找不到指定线条的线条样式的方法 我的意思是这条线是实线还是虚线 有人可以帮助我吗 Thanks 无论如何 您不能仅仅通过使用 Flex 库类 当然 你也可以自己做 这是一个实现它的类 根据找
  • 此 xpath 查询的 Flex/AS3/E4X 等效项是什么?

    鉴于此文档
  • 如何向 Flash Player 10.1 发出启动 flv 或 swf 的意图?

    我有一堆FLV视频文件存储在媒体服务器 我正在尝试让它们在 Flash 播放器中启动 一直在四处寻找但没有找到太多帮助 我已将 flv 文件下载到临时存储中 并尝试使用intent 这就是我的代码的样子 来自我在网上看到的 try URL
  • php 如何使用 getimagesize() 检查上传时的图像类型[重复]

    这个问题在这里已经有答案了 可能的重复 GetImageSize 在应该返回 FALSE 时没有返回 FALSE https stackoverflow com questions 10464948 getimagesize not ret
  • 根据另一个 csv 文件过滤 csv 文件中的行并将过滤后的数据保存在新文件中

    大家好 所以我试图根据file1过滤file2 其中file1是file2的子集 但 file2 有一个描述列 我需要能够分析 file1 中的数据 我想做的是过滤 file2 并仅获取 file1 中的标题及其描述 我尝试了这个 但我不太
  • 如何根据列表中的先前值过滤Haskell中的列表元素?

    我正在努力在 Haskell 中创建一个函数 该函数根据列表中前一个元素的条件过滤列表的数字 Example 前一个数字是 2 的倍数 myFunction 1 2 5 6 3 expected output 5 3 我知道如何申请filt
  • 如何在java中的组合框之间使用过滤器?

    我的数据库中有两个表 分别是学期表和课程表 学期表中有学期 ID 课程 ID 课程名称和 Sdepartment 部门名称 课程表有课程 ID 和课程名称 我的 jframe 有两个组合框 第一个用于选择部门 第二个用于选择课程 我想选择所
  • ActionScript 3.0 中缺少运算符重载

    我在 ActionScript 中最怀念的事情之一是缺少运算符重载 特别是 我通过在我的类中添加 Compare 方法来解决这个问题 但这在很多情况下没有帮助 比如当你想使用内置字典之类的东西时 有没有好的方法来解决这个问题 Nope 但添
  • 调用控制器 Post 方法时遇到问题

    这是我的方法 AcceptVerbs HttpVerbs Post public void SaveImage FormCollection formValues byte contents Convert FromBase64String
  • 在 Mac OS X (Mavericks) 上的 Adob​​e AIR 中的两台显示器上显示两个全屏窗口

    我使用的是 Mac OS X Mavericks 使用 Adob e AIR 我想在两个显示器 内置笔记本电脑视网膜显示器和外部 HDMI 显示器 上分别显示单独的全屏窗口 我可以在主显示器上获得全屏窗口 在辅助显示器上获得几乎全屏的窗口
  • AS3 是否可以复制 Shape 对象?

    我正在尝试制作一个可用于复制的形状 这是我所做的 我正在尝试做的以及我陷入困境的解释 在 Flash IDE 画笔 中手动绘制形状 创建了一个包含形状的新影片剪辑 作为一个类导出 实例化该类 var mc MovieClip new sha
  • as3 事件 - 类型强制失败?

    我正在将事件从孩子发送到父母 swf 它工作正常 直到我使用预加载器 swf 加载父级 然后父级停止从子级获取事件 我现在收到此错误 TypeError Error 1034 Type Coercion failed cannot conv
  • 从另一个域加载外部图像

    是否可以从另一个域加载图像 jpg png gif 并操作像素 我想当下载 复制图像时它就在我的域中 使用加载器并将内容添加到图像组件时 我在调试器中收到错误 我想这里有一些跨域策略在起作用 但在继续之前我需要更确定它是如何工作的 我想 如
  • 如何通过单击按钮从反应状态挂钩数组中删除对象

    我正在尝试制作一个按钮 根据传递的索引从数组 即状态 中删除一个对象 我已经尝试了很多 但我的方法都不起作用 所以这是代码 希望我可以找人帮忙 state const items setItems useState name quantit
  • 将“-Filter”与变量一起使用

    我尝试过滤掉这样的东西 Get ADComputer Filter name like chalmw dm and Enabled eq true 这就像一个魅力 并且得到了我想要的 现在我想要 类似名称 部分作为变量 如下所示 Get A
  • 我应该等待 Flash Player 10.1 还是使用 Flash Lite 3 来为手机和设备开发 Flash 内容

    Adobe 将在 2010 年第一季度推出 Flash Player 10 1 这将在桌面和移动设备上提供一致的运行时 因此我假设如果它是为 Web 构建的 那么它也可以在移动设备上运行 我即将开始为手机开发基于 Flash 的应用程序 我
  • 将日期转换为 UTC 的正确方法

    如果这个问题没有多大意义 我很抱歉 但我是 Actionscript 的新手 并且想知道您是否可以帮助我解决这个问题 我正在构建一个给定时区的应用程序 告诉您该位置的时间 当我使用时区为 GMT UTC 的位置时 它效果很好 但如果主机上的
  • Flash 未在调试播放器中显示错误/堆栈跟踪(firefox/chrome/whatnot)

    我正在尝试调试在线默默地失败的应用程序 我 100 确定我正在运行 Flash 调试播放器 为了确保我不会丢失它 我故意抛出一个错误 但 Flash 在浏览器中没有显示任何 stracktrace 我快要失去它了 有什么线索吗 我正在 ch

随机推荐