2017-04-20 169 views
0

CreateJS鼠標點擊根本無法工作的原因是什麼?CreateJS Animate CC - 鼠標點擊不起作用

編輯澄清:

可能是什麼潛在原因動畫-CC/CreatJS帆布鼠標交互工作here(按視頻播放按鈕 ),但不here(按下按鈕「玩」)?

某些類型的「阻止」,阻止Canvas獲取點擊?

澄清更多:

請打開控制檯,你會看到第一個網站都記錄在畫布和舞臺點擊,而第二個僅記錄在畫布上點擊。

這是我的代碼:

this.stage.addEventListener("click", function(){console.log("stage is clicked")}); 

this.stage.canvas.addEventListener("click", function(){console.log("canvas is clicked")}); 

我的代碼加載到上述兩個網頁,但第二頁做一些事情,讓舞臺無法點擊。

任何想法?

在此先感謝!

更新1:

請參閱工作實例以上是我創作(ID「iRoll」)包裹在iFrame中,而不是工作的例子並不具有。這可能會影響CreateJS框架解釋DOM鼠標交互的方式。

另外,我已經加入到上述實施例中這樣的代碼:

that.mcBTN.addEventListener("rollover", function (e) { 
    that.mcBTN.gotoAndStop(1); 
}); 

that.mcBTN.addEventListener("rollout", function (e) { 
    that.mcBTN.gotoAndStop(0); 
}); 

that.mcBTN作爲黑盒子,和我有文本「(軋製上)」上框架1

這是改變的點擊顏色框代碼:

that.first = true; 
that.mcBTN.addEventListener("click", function (e) { 
    that.mcChanger.gotoAndStop(that.first); 
    that.first = !that.first; 
}); 

如果黑匣子和它裏面外面交替點擊,你可以看到,有些事情是在座標方面正確註冊inates系統 - (「滾動」文本出現,因爲它應該),但仍然點擊功能和翻轉功能本身以某種方式不起作用(即,彩色框不會改變顏色和「滾動」文本不基於翻轉交互而出現。

+0

階段縮放可能導致此問題。 Adobe在轉換座標的舞臺上增加了「響應式」縮放。查看點擊是否從舞臺的其他位置觸發。 – Lanny

+0

thanx Lanny,我實際上進一步簡化了這個問題(參見上面的編輯)。在有問題的頁面上 - 根本不捕獲階段點擊。對此有何想法? – Saariko

回答

0

根據你最近的代碼示例,我猜測第二個(在畫布上的監聽者)的作品,但是舞臺上的那個沒有。知道只有在鼠標下面有內容時纔會觸發舞臺「點擊」事件,這一點很重要。如果你想要一個「任意位置單擊」事件,然後使用「stagemouseup」

http://createjs.com/docs/easeljs/classes/Stage.html#event_stagemouseup

如果你有鼠標下的內容,並沒有被點擊時沒有控制檯日誌,你可以嘗試在看階段尺度。正如我在我的評論中提到的那樣,Adobe添加了一些響應式代碼,可以縮放內容以適應內容,但階段縮放會導致鼠標座標問題。

任何機會,你可以發佈一個例子或更多的代碼?

+0

Thanx Lanny爲您的投入如此之多!實際上,Adobe不僅執行「響應式」的工作,而且還採用了該代碼,並根據需要進一步更改了它。也許我在那裏做了錯誤的事情,我很快就會在這裏發佈所有代碼,看起來相關的部分。同時,再次檢查非點擊頁面:點擊藍色和黑色區域 - 光標會相應地改變。這不是說問題不是協調問題,而是其他問題? – Saariko

+0

Lanny我在問題中增加了一些信息,或許它更清楚。還要注意的是,雖然Animate正在生成一個完整的HTML頁面(在其中一個持有Canvas的div中),但我的代碼使用Canvas並將其「手動」添加到我們的系統中(所以類似於使用CreateJS/EaselJS「by手「 - 沒有動畫)。 – Saariko