演示地址: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