演示地址:http://www.bjjcxx.org.cn/lab/newWin.htm
現(xiàn)把“隨鼠標的拖動窗口大小更著變化”的思路作一分析:
在Window組件中我們可以放入內(nèi)容,由Window組件的contentPath屬性設(shè)置。我在Window組件中放入一個電影剪輯元件(名為barN,就是拖動手柄),最初barN的alpha值為20,當(dāng)把鼠標放到其上后alpha值變?yōu)?00,鼠標按在barN上拖動后,激發(fā) onEnterFrame 事件。假設(shè)鼠標剛開始拖動時的位置為(x1,y1),窗口的寬度
為 W1,高度為H1,拖動手柄(barN電影剪輯)的位置為(barX,barY)隨著鼠標的移動鼠標的位置也相應(yīng)發(fā)生變化,假設(shè)T時刻鼠標的位置為(x2,y2),那么鼠標的位置改變量為xChange = x2 - x1 , yChangey = y2 - y1 那么T時刻窗口的寬度和高度分別為 W2 = W1 + xChange ,H2 = H1 + yChange 。拖動手柄的新位置為(barX + xChange , barY + yChange) 以上的計算過程都在onEnterFrame 事件中
發(fā)生,從而達到當(dāng)按住拖動手柄拖動時,窗口隨著鼠標的拖動而改變寬高,同時拖動手柄也隨著鼠標跑。但是窗口不能無限地縮小,否則會出現(xiàn)一些不好的事情,所以我定義了窗口有一個最小寬度和高度。釋放鼠標后,將 onEnterFrame 事件取消 (代碼為:onEnterFrame = undefined;)同時barN的alpha 設(shè)為20。
源文件下載:http://www.bjjcxx.org.cn/lab/newWin.rar