@@ -223,6 +223,17 @@ module Phaser.Components {
223223
224224 }
225225
226+ public reset ( ) {
227+
228+ this . enabled = false ;
229+
230+ for ( var i = 0 ; i < 10 ; i ++ )
231+ {
232+ this . _pointerData [ i ] = { id : i , x : 0 , y : 0 , isDown : false , isUp : false , isOver : false , isOut : false , timeOver : 0 , timeOut : 0 , timeDown : 0 , timeUp : 0 , downDuration : 0 , isDragged : false } ;
233+ }
234+
235+ }
236+
226237 public stop ( ) {
227238
228239 // Turning off
@@ -239,83 +250,112 @@ module Phaser.Components {
239250
240251 }
241252
253+ public checkPointerOver ( pointer : Phaser . Pointer ) : bool {
254+
255+ if ( this . enabled == false || this . _sprite . visible == false )
256+ {
257+ return false ;
258+ }
259+ else
260+ {
261+ return RectangleUtils . contains ( this . _sprite . frameBounds , pointer . x , pointer . y ) ;
262+ }
263+
264+ }
265+
242266 /**
243267 * Update
244268 */
245269 public update ( pointer : Phaser . Pointer ) : bool {
246270
247- if ( this . enabled == false )
271+ if ( this . enabled == false || this . _sprite . visible == false )
248272 {
249273 return false ;
250274 }
251275
252- if ( this . draggable && this . _draggedPointerID == pointer . id )
253- {
254- this . updateDrag ( pointer ) ;
255- }
256-
257- if ( RectangleUtils . contains ( this . _sprite . frameBounds , pointer . x , pointer . y ) )
276+ if ( this . draggable && this . _draggedPointerID == pointer . id )
277+ {
278+ return this . updateDrag ( pointer ) ;
279+ }
280+ else if ( this . _pointerData [ pointer . id ] . isOver == true )
258281 {
259- // { id: i, x: 0, y: 0, isDown: false, isUp: false, isOver: false, isOut: false, timeOver: 0, timeOut: 0, isDragged: false }
282+ if ( RectangleUtils . contains ( this . _sprite . frameBounds , pointer . x , pointer . y ) )
283+ {
284+ this . _pointerData [ pointer . id ] . x = pointer . x - this . _sprite . x ;
285+ this . _pointerData [ pointer . id ] . y = pointer . y - this . _sprite . y ;
286+ return true ;
287+ }
288+ else
289+ {
290+ this . _pointOutHandler ( pointer ) ;
291+ return false ;
292+ }
293+ }
294+
295+ }
296+
297+ public _pointerOverHandler ( pointer : Pointer ) {
260298
299+ // { id: i, x: 0, y: 0, isDown: false, isUp: false, isOver: false, isOut: false, timeOver: 0, timeOut: 0, isDragged: false }
300+
301+ if ( this . _pointerData [ pointer . id ] . isOver == false )
302+ {
303+ this . _pointerData [ pointer . id ] . isOver = true ;
304+ this . _pointerData [ pointer . id ] . isOut = false ;
305+ this . _pointerData [ pointer . id ] . timeOver = this . game . time . now ;
261306 this . _pointerData [ pointer . id ] . x = pointer . x - this . _sprite . x ;
262307 this . _pointerData [ pointer . id ] . y = pointer . y - this . _sprite . y ;
263308
264- if ( this . _pointerData [ pointer . id ] . isOver == false )
309+ if ( this . useHandCursor && this . _pointerData [ pointer . id ] . isDragged == false )
265310 {
266- this . _pointerData [ pointer . id ] . isOver = true ;
267- this . _pointerData [ pointer . id ] . isOut = false ;
268- this . _pointerData [ pointer . id ] . timeOver = this . game . time . now ;
269-
270- if ( this . useHandCursor && this . _pointerData [ pointer . id ] . isDragged == false )
271- {
272- this . game . stage . canvas . style . cursor = "pointer" ;
273- }
274-
275- this . _sprite . events . onInputOver . dispatch ( this . _sprite , pointer ) ;
311+ this . game . stage . canvas . style . cursor = "pointer" ;
276312 }
277313
278- return true ;
314+ this . _sprite . events . onInputOver . dispatch ( this . _sprite , pointer ) ;
279315 }
280- else
281- {
282- if ( this . _pointerData [ pointer . id ] . isOver )
283- {
284- this . _pointerData [ pointer . id ] . isOver = false ;
285- this . _pointerData [ pointer . id ] . isOut = true ;
286- this . _pointerData [ pointer . id ] . timeOut = this . game . time . now ;
287316
288- if ( this . useHandCursor && this . _pointerData [ pointer . id ] . isDragged == false )
289- {
290- this . game . stage . canvas . style . cursor = "default" ;
291- }
317+ }
292318
293- this . _sprite . events . onInputOut . dispatch ( this . _sprite , pointer ) ;
294- }
319+ public _pointOutHandler ( pointer : Pointer ) {
295320
296- return false ;
321+ this . _pointerData [ pointer . id ] . isOver = false ;
322+ this . _pointerData [ pointer . id ] . isOut = true ;
323+ this . _pointerData [ pointer . id ] . timeOut = this . game . time . now ;
324+
325+ if ( this . useHandCursor && this . _pointerData [ pointer . id ] . isDragged == false )
326+ {
327+ this . game . stage . canvas . style . cursor = "default" ;
297328 }
298329
330+ this . _sprite . events . onInputOut . dispatch ( this . _sprite , pointer ) ;
331+
299332 }
300333
301- public _touchedHandler ( pointer : Pointer ) {
334+ public consumePointerEvent : bool = false ;
335+
336+ public _touchedHandler ( pointer : Pointer ) : bool {
302337
303338 if ( this . _pointerData [ pointer . id ] . isDown == false && this . _pointerData [ pointer . id ] . isOver == true )
304339 {
340+ console . log ( 'touchDown on' , this . _sprite . texture . cacheKey , this . _sprite . frameName , this . _sprite . frameBounds . width , this . _sprite . frameBounds . height ) ;
305341 this . _pointerData [ pointer . id ] . isDown = true ;
306342 this . _pointerData [ pointer . id ] . isUp = false ;
307343 this . _pointerData [ pointer . id ] . timeDown = this . game . time . now ;
308344
309345 this . _sprite . events . onInputDown . dispatch ( this . _sprite , pointer ) ;
310346
311347 // Start drag
312- if ( this . draggable && this . isDragged == false && pointer . draggedObject == null )
348+ //if (this.draggable && this.isDragged == false && pointer.targetObject == null)
349+ if ( this . draggable && this . isDragged == false )
313350 {
314351 this . startDrag ( pointer ) ;
315352 }
316353
317354 }
318355
356+ // Consume the event?
357+ return this . consumePointerEvent ;
358+
319359 }
320360
321361 public _releasedHandler ( pointer : Pointer ) {
@@ -347,12 +387,12 @@ module Phaser.Components {
347387 /**
348388 * Updates the Pointer drag on this Sprite.
349389 */
350- private updateDrag ( pointer : Pointer ) :void
390+ private updateDrag ( pointer : Pointer ) :bool
351391 {
352392 if ( pointer . isUp )
353393 {
354394 this . stopDrag ( pointer ) ;
355- return ;
395+ return false ;
356396 }
357397
358398 if ( this . allowHorizontalDrag )
@@ -380,6 +420,8 @@ module Phaser.Components {
380420 this . _sprite . x = Math . floor ( this . _sprite . x / this . snapX ) * this . snapX ;
381421 this . _sprite . y = Math . floor ( this . _sprite . y / this . snapY ) * this . snapY ;
382422 }
423+
424+ return true ;
383425 }
384426
385427 /**
@@ -516,7 +558,7 @@ module Phaser.Components {
516558 this . _dragPoint . setTo ( this . _sprite . x - pointer . x , this . _sprite . y - pointer . y ) ;
517559 }
518560
519- pointer . draggedObject = this . _sprite ;
561+ // pointer.draggedObject = this._sprite;
520562
521563 }
522564
@@ -535,7 +577,7 @@ module Phaser.Components {
535577 this . _sprite . y = Math . floor ( this . _sprite . y / this . snapY ) * this . snapY ;
536578 }
537579
538- pointer . draggedObject = null ;
580+ // pointer.draggedObject = null;
539581 }
540582
541583 /**
0 commit comments