2013-04-07 49 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