2013-04-07 51 views
2

我想弄清楚如何使用easljs添加过滤器ti视频源。根据文档,我可以将筛选器设置为bitmap.filtes属性。这似乎并不奏效。没有任何错误或任何错误,这些过滤器根本不适用。有关文档Easljs应用过滤器位图

一个困惑,就是它提到cache()必须显示对象上,以被称为以应用过滤器,但为bitmap类,它说,cache()不应该被调用。

下面是我使用的测试代码:

var stage = new createjs.Stage('screen'); 

var video = document.getElementById('source'); 
var bitmap = new createjs.Bitmap(video); 

bitmap.scaleX = 0.44; 
bitmap.scaleY = 0.44; 
bitmap.y = 30; 

bitmap.filters = [ 
    new createjs.ColorFilter(0,0,0,1,255,0,0), 
    new createjs.BoxBlurFilter(5, 5, 10) 
]; 

stage.addChild(bitmap); 

回答

2

关于位图和过滤器的文档是误导性的 - 我会确保它的下一个版本更新。

应该避免缓存位图,因为它不会提供任何性能优势,您将通过缓存容器,形状和文本获得性能优势。事实上,它甚至可能会降低性能,因为它会使用额外的内存来存储缓存版本

但是,您必须缓存位图以对其应用过滤器。将缓存调用添加到您的示例,它应该可以工作。

对不起,由文档造成的任何混淆。

+0

好的,谢谢你的澄清。但是,当我将'bitmap.cache()'添加到上面的代码时,它似乎会引发一个异常:'未捕获的错误:InvalidStateError:DOM异常11' – Genu 2013-04-08 11:41:26

+0

您确定这是由缓存引起的吗? DOM异常11通常与ajax请求有关。你能隔离缓存代码并测试它吗?你可能正在加载跨域的内容? – Lanny 2013-04-09 15:43:30

相关问题