mirror of
https://github.com/scratchfoundation/Gestouch.git
synced 2024-11-27 01:35:40 -05:00
Put back automatic input adapter initialization
This commit is contained in:
parent
6d8b733d51
commit
3ba8a3df86
1 changed files with 47 additions and 1 deletions
|
@ -1,11 +1,16 @@
|
||||||
package org.gestouch.core
|
package org.gestouch.core
|
||||||
{
|
{
|
||||||
import org.gestouch.gestures.Gesture;
|
import org.gestouch.gestures.Gesture;
|
||||||
|
import org.gestouch.input.MouseInputAdapter;
|
||||||
|
import org.gestouch.input.TouchInputAdapter;
|
||||||
|
|
||||||
|
import flash.display.DisplayObject;
|
||||||
import flash.display.DisplayObjectContainer;
|
import flash.display.DisplayObjectContainer;
|
||||||
import flash.display.InteractiveObject;
|
import flash.display.InteractiveObject;
|
||||||
import flash.display.Shape;
|
import flash.display.Shape;
|
||||||
|
import flash.display.Stage;
|
||||||
import flash.events.Event;
|
import flash.events.Event;
|
||||||
|
import flash.ui.Multitouch;
|
||||||
import flash.utils.Dictionary;
|
import flash.utils.Dictionary;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -13,12 +18,14 @@ package org.gestouch.core
|
||||||
*/
|
*/
|
||||||
public class GesturesManager implements IGesturesManager
|
public class GesturesManager implements IGesturesManager
|
||||||
{
|
{
|
||||||
|
public static var initDefaultInputAdapter:Boolean = true;
|
||||||
private static var _instance:IGesturesManager;
|
private static var _instance:IGesturesManager;
|
||||||
private static var _allowInstantiation:Boolean;
|
private static var _allowInstantiation:Boolean;
|
||||||
|
|
||||||
protected const _touchesManager:ITouchesManager = TouchesManager.getInstance();
|
protected const _touchesManager:ITouchesManager = TouchesManager.getInstance();
|
||||||
protected const _frameTickerShape:Shape = new Shape();
|
protected const _frameTickerShape:Shape = new Shape();
|
||||||
protected var _inputAdapters:Vector.<IInputAdapter> = new Vector.<IInputAdapter>();
|
protected var _inputAdapters:Vector.<IInputAdapter> = new Vector.<IInputAdapter>();
|
||||||
|
protected var _stage:Stage;
|
||||||
protected var _gestures:Vector.<Gesture> = new Vector.<Gesture>();
|
protected var _gestures:Vector.<Gesture> = new Vector.<Gesture>();
|
||||||
protected var _gesturesForTouchMap:Array = [];
|
protected var _gesturesForTouchMap:Array = [];
|
||||||
protected var _gesturesForTargetMap:Dictionary = new Dictionary(true);
|
protected var _gesturesForTargetMap:Dictionary = new Dictionary(true);
|
||||||
|
@ -90,6 +97,18 @@ package org.gestouch.core
|
||||||
targetGestures.push(gesture);
|
targetGestures.push(gesture);
|
||||||
|
|
||||||
_gestures.push(gesture);
|
_gestures.push(gesture);
|
||||||
|
|
||||||
|
if (GesturesManager.initDefaultInputAdapter)
|
||||||
|
{
|
||||||
|
if (!_stage && gesture.target.stage)
|
||||||
|
{
|
||||||
|
installStage(gesture.target.stage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gesture.target.addEventListener(Event.ADDED_TO_STAGE, gestureTarget_addedToStageHandler);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,6 +127,7 @@ package org.gestouch.core
|
||||||
if (targetGestures.length == 0)
|
if (targetGestures.length == 0)
|
||||||
{
|
{
|
||||||
delete _gesturesForTargetMap[target];
|
delete _gesturesForTargetMap[target];
|
||||||
|
target.removeEventListener(Event.ADDED_TO_STAGE, gestureTarget_addedToStageHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
var index:int = _gestures.indexOf(gesture);
|
var index:int = _gestures.indexOf(gesture);
|
||||||
|
@ -200,6 +220,21 @@ package org.gestouch.core
|
||||||
//
|
//
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
protected function installStage(stage:Stage):void
|
||||||
|
{
|
||||||
|
_stage = stage;
|
||||||
|
|
||||||
|
if (Multitouch.supportsTouchEvents)
|
||||||
|
{
|
||||||
|
addInputAdapter(new TouchInputAdapter(stage));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
addInputAdapter(new MouseInputAdapter(stage));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected function resetDirtyGestures():void
|
protected function resetDirtyGestures():void
|
||||||
{
|
{
|
||||||
for each (var gesture:Gesture in _dirtyGestures)
|
for each (var gesture:Gesture in _dirtyGestures)
|
||||||
|
@ -343,6 +378,17 @@ package org.gestouch.core
|
||||||
//
|
//
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
protected function gestureTarget_addedToStageHandler(event:Event):void
|
||||||
|
{
|
||||||
|
var target:DisplayObject = event.target as DisplayObject;
|
||||||
|
target.removeEventListener(Event.ADDED_TO_STAGE, gestureTarget_addedToStageHandler);
|
||||||
|
if (!_stage && GesturesManager.initDefaultInputAdapter)
|
||||||
|
{
|
||||||
|
installStage(target.stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private function enterFrameHandler(event:Event):void
|
private function enterFrameHandler(event:Event):void
|
||||||
{
|
{
|
||||||
resetDirtyGestures();
|
resetDirtyGestures();
|
||||||
|
|
Loading…
Reference in a new issue