Exemple #1
0
        public override void ccTouchMoved(UITouch touch)
        {
            if (scrollTouch_ != touch)
            {
                return;
            }

            Vector2 touchPoint = this.convertTouchToNodeSpace(touch);

            touchPoint = this.convertToWorldSpace(touchPoint);


            // If finger is dragged for more distance then minimum - start sliding and cancel pressed buttons.
            // Of course only if we not already in sliding mode
            if ((state_ != kCCScrollLayerState.Sliding) &&
                (Mathf.Abs(touchPoint.x - startSwipe_) >= this.minimumTouchLengthToSlide))
            {
                state_ = kCCScrollLayerState.Sliding;

                // Avoid jerk after state change.
                startSwipe_ = touchPoint.x;

                if (this.stealTouches)
                {
                    this.claimTouch(touch);
                }
                if (this.delegate_ != null)
                {
                    this.delegate_.scrollLayerDraging(this);
                }
            }

            if (state_ == kCCScrollLayerState.Sliding)
            {
                float desiredX = (-currentScreen_ * (this.contentSize.x - this.pagesWidthOffset)) + touchPoint.x - startSwipe_;
                int   page     = this.pageNumberForPosition(new Vector2(desiredX, 0));
                float offset   = desiredX - this.positionForPageWithNumber(page).x;
                if ((page == 0 && FloatUtils.Big(offset, 0)) || (page == layers_.Count - 1 && FloatUtils.Small(offset, 0)))
                {
                    offset -= marginOffset_ * offset / CCDirector.sharedDirector.winSize.x;
                }
                else
                {
                    offset = 0;
                }
                this.position = new Vector2(desiredX - offset, 0);
            }
        }
Exemple #2
0
        public override bool ccTouchBegan(UITouch touch)
        {
            if (isMoving_)
            {
                return(false);
            }
            if (scrollTouch_ == null)
            {
                scrollTouch_ = touch;
            }
            else
            {
                return(false);
            }

            Vector2 touchPoint = this.convertTouchToNodeSpace(touch);

            touchPoint = this.convertToWorldSpace(touchPoint);

            startSwipe_ = touchPoint.x;
            state_      = kCCScrollLayerState.Idle;
            return(true);
        }
		public override void ccTouchMoved (UITouch touch)
		{
			if( scrollTouch_ != touch ) {
				return;
			}
			
			Vector2 touchPoint = this.convertTouchToNodeSpace (touch);
			touchPoint = this.convertToWorldSpace (touchPoint);
			
			
			// If finger is dragged for more distance then minimum - start sliding and cancel pressed buttons.
			// Of course only if we not already in sliding mode
			if ( (state_ != kCCScrollLayerState.Sliding)
			    && (Mathf.Abs(touchPoint.x-startSwipe_) >= this.minimumTouchLengthToSlide) )
			{
				state_ = kCCScrollLayerState.Sliding;
				
				// Avoid jerk after state change.
				startSwipe_ = touchPoint.x;
				
				if (this.stealTouches)
				{
					this.claimTouch(touch);
				}
				if(this.delegate_ != null)
					this.delegate_.scrollLayerDraging(this);
			}
			
			if (state_ == kCCScrollLayerState.Sliding)
			{
				float desiredX = (- currentScreen_ * (this.contentSize.x - this.pagesWidthOffset)) + touchPoint.x - startSwipe_;
				int page = this.pageNumberForPosition(new Vector2(desiredX, 0));
				float offset = desiredX - this.positionForPageWithNumber(page).x;
				if ((page == 0 && FloatUtils.Big(offset , 0)) || (page == layers_.Count - 1 && FloatUtils.Small(offset , 0)))
					offset -= marginOffset_ * offset / CCDirector.sharedDirector.winSize.x;
				else
					offset = 0;
				this.position = new Vector2(desiredX - offset, 0);
			}
		}
		public override bool ccTouchBegan (UITouch touch)
		{
			if (isMoving_)
				return false;
			if( scrollTouch_ == null ) {
				scrollTouch_ = touch;
			} else {
				return false;
			}
			
			Vector2 touchPoint = this.convertTouchToNodeSpace (touch);
			touchPoint = this.convertToWorldSpace (touchPoint);
			
			startSwipe_ = touchPoint.x;
			state_ = kCCScrollLayerState.Idle;
			return true;
		}