2011-09-10 154 views
0

我目前正在使用一個界面,我有一個尺寸爲800x800的主畫布。在頂部,我生成了一堆圖標。當用戶將鼠標懸停在頂部的圖標上時,它會匹配鼠標的x和y座標以確定他是否正在當前懸停在任何圖標上。如果他是,我想有一個懸停效果,其中標籤出現在鼠標旁邊,並帶有圖標的名稱。當他移動時,標籤跟隨着鼠標。如果他離開圖標或移動到另一個圖標,則最後一個被清除,並且沒有顯示標籤(如果用戶移走所有圖標),或者在最後一個位置的鼠標旁邊顯示另一個標籤(如果他懸停在另一個圖標上,則標籤的寬度根據文本的寬度是可變長度)。畫布內的畫布是否可以輕鬆地從主畫布中清除?

排序和顯示這些圖標的過程全部發生在與其餘畫布渲染不同的對象內,因此我不會完全想要重新呈現整個對象來顯示圖標,而每次觸發事件時觸發一個mousemove ,所以我想知道是否有辦法繪製到另一個「臨時」畫布上下文,以及是否可以輕鬆清除。隨着鼠標移動,主畫布上沒有留下任何痕跡?任何人都可以向我這樣一個例子的方向指點,或者告訴我應該如何去完成這樣的任務?

回答

0

是的,你當然可以把它繪製到臨時(內存)畫布上。這有很多種原因,你的可能是有效的(特別是如果你沒有任何變化的背景)。但是它可能不是最容易實現的,很難說如果不知道更多關於你的應用的信息。

有一個體面的選擇,你應該考慮:你可以有兩個大小爲800x800的畫布重疊在彼此之上。這對於某些背景,前景和中間部分都有不同移動部分的應用(如遊戲)很有用(但背景部分移動很少,前景不總是存在等)

同樣,您可以「繪製」您的畫布應用,圖標位於一個畫布上,背景和應用的其他部分位於另一個畫布上。

+0

非常好,做了一些研究,我會給多個畫布'一槍。謝謝! – Scott