チェンジセット 2763: as3/mouseZoom
- コミット日時:
- 2009/05/31 10:42:38 (3 年前)
- ファイル:
-
- as3/mouseZoom/trunk/mouseZoomSample/bin (削除)
- as3/mouseZoom/trunk/mouseZoomSample/mouseZoomSample.fla (更新) (変更前)
- as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/MouseSmoothScaleControl.as (更新) (10 diffs)
- as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/ScaleControl.as (更新) (1 diff)
- as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/events/MouseScaleEvent.as (更新) (1 diff)
- as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoomSample/MouseZoomSample.as (更新) (1 diff)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/MouseSmoothScaleControl.as
r2719 r2763 41 41 private function initialize():void 42 42 { 43 // オブジェクトの子に対してマウスを無効にします。44 this.mouseChildren = false;45 43 // 背景を初期化します。 46 44 this.initializeBackground(); … … 50 48 this.addEventListener(MouseEvent.MOUSE_UP, this.onMouseUp); 51 49 this.addEventListener(MouseEvent.MOUSE_WHEEL, this.onMouseWheel); 52 this.addEventListener(MouseEvent. MOUSE_OUT, this.onMouseOut);50 this.addEventListener(MouseEvent.ROLL_OUT, this.onRollOut); 53 51 } 54 52 … … 150 148 } 151 149 152 private var _mouseWheelScale:Number = 1/ 96;150 private var _mouseWheelScale:Number = 1/16; 153 151 /** 154 152 * マウスホイールが回転されたときにズームする倍率。 … … 166 164 167 165 /** 168 * プロパティが変更されたときに呼び出されます。166 * MouseScaleEvent イベントをイベントフローに送出します。 169 167 * @param type イベントの種類。 170 168 * @param mouseEvent 元となる mouseEvent 。 171 */ 169 */ 172 170 protected function dispatchMouseScaleEvent(type:String, mouseEvent:MouseEvent):void 173 171 { 174 var event:MouseScaleEvent = MouseScaleEvent.createSmoothScaleControlEventFromMouseEvent(type, mouseEvent); 172 var localPoint:Point = this.globalToLocal(new Point(mouseEvent.stageX, mouseEvent.stageY)); 173 var event:MouseScaleEvent = new MouseScaleEvent 174 ( 175 type, 176 mouseEvent.bubbles, 177 mouseEvent.cancelable, 178 this.mouseX, 179 this.mouseY, 180 mouseEvent.relatedObject, 181 mouseEvent.ctrlKey, 182 mouseEvent.altKey, 183 mouseEvent.shiftKey, 184 mouseEvent.buttonDown, 185 mouseEvent.delta 186 ); 175 187 this.dispatchEvent(event); 176 188 } … … 209 221 private function onMouseDown(event:MouseEvent):void 210 222 { 211 this._preMousePosition = new Point(event.localX, event.localY); 223 var localPoint:Point = new Point(this.mouseX, this.mouseY); 224 this._preMousePosition = localPoint; 212 225 this._isDrag = false; 213 226 this._isMouseDown = true; … … 228 241 { 229 242 var pre:Point = this.preMousePosition; 230 var current:Point = new Point( event.localX, event.localY);243 var current:Point = new Point(this.mouseX, this.mouseY); 231 244 if(pre != null) 232 245 { … … 250 263 * @param event イベントデータ。 251 264 */ 252 private function on MouseOut(event:MouseEvent):void265 private function onRollOut(event:MouseEvent):void 253 266 { 254 267 var oldIsDrag:Boolean = this.isDrag; … … 272 285 { 273 286 var scale:Number = this.contentScale * this.clickScale; 274 var position:Point = new Point( event.localX, event.localY);287 var position:Point = new Point(this.mouseX, this.mouseY); 275 288 this.zoomAt(scale, position); 276 289 this._isMouseDown = false; … … 300 313 var current:Number = this.contentScale; 301 314 var scale:Number = 1.0; 302 var position:Point ;315 var position:Point = new Point(this.mouseX, this.mouseY); 303 316 if(delta<0) 304 317 { 305 318 scale = current / (1 - delta); 306 position = new Point(event.localX, event.localY);307 319 this.zoomAt(scale, position); 308 320 this.dispatchMouseScaleEvent(MouseScaleEvent.MOUSE_WHEEL_ZOOM_OUT, event); … … 311 323 { 312 324 scale = current * (1 + delta); 313 position = new Point(event.localX, event.localY);314 325 this.zoomAt(scale, position); 315 326 this.dispatchMouseScaleEvent(MouseScaleEvent.MOUSE_WHEEL_ZOOM_IN, event); as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/ScaleControl.as
r2719 r2763 153 153 private var _contentOrigin:Point = null; 154 154 /** 155 * 表示されるコンテンツの領域の 左上隅の座標。155 * 表示されるコンテンツの領域の原点座標。 156 156 */ 157 157 public function get contentOrigin():Point as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/events/MouseScaleEvent.as
r2719 r2763 57 57 super(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta); 58 58 } 59 60 /**61 * MouseEvent を元にパラメータで指定されたタイプの MouseScaleEvent を生成します。62 * @param type イベントの種類。63 * @param mouseEvent 元となる MouseEvent 。64 * @return 生成された MouseScaleEvent 。65 */66 public static function createSmoothScaleControlEventFromMouseEvent(type:String, mouseEvent:MouseEvent):MouseScaleEvent67 {68 var result:MouseScaleEvent = new MouseScaleEvent69 (70 type,71 mouseEvent.bubbles,72 mouseEvent.cancelable,73 mouseEvent.localX,74 mouseEvent.localY,75 mouseEvent.relatedObject,76 mouseEvent.ctrlKey,77 mouseEvent.altKey,78 mouseEvent.shiftKey,79 mouseEvent.buttonDown,80 mouseEvent.delta81 );82 return result;83 }84 59 } 85 60 } as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoomSample/MouseZoomSample.as
r2719 r2763 58 58 // scaleControl.clickScale = 2; 59 59 60 // マウスホイールが回転されたときにズームする倍率を変更します。デフォルト値は 1/ 96 です。61 // scaleControl.mouseWheelScale = 1/ 64;60 // マウスホイールが回転されたときにズームする倍率を変更します。デフォルト値は 1/16 です。 61 // scaleControl.mouseWheelScale = 1/8; 62 62 63 63 // 背景色を変更します。デフォルト値は 0xFFFFFF です。

