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