flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bigosma...@apache.org
Subject [01/22] git commit: [flex-examples] [refs/heads/develop] - added a slide to open and mouse drag to close
Date Tue, 04 Nov 2014 19:15:51 GMT
Repository: flex-examples
Updated Branches:
  refs/heads/develop 0cd6ec753 -> 44ddf534e


added a slide to open and mouse drag to close

Signed-off-by: OmPrakash Muppirala <bigosmallm@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/flex-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-examples/commit/7a933e28
Tree: http://git-wip-us.apache.org/repos/asf/flex-examples/tree/7a933e28
Diff: http://git-wip-us.apache.org/repos/asf/flex-examples/diff/7a933e28

Branch: refs/heads/develop
Commit: 7a933e28389b6fb9741892b9a856babe415ea5a5
Parents: 0cd6ec7
Author: nasha001 <nasha001@DM-DT-NASH.hartford.gov>
Authored: Tue Jan 7 12:56:52 2014 -0500
Committer: OmPrakash Muppirala <bigosmallm@gmail.com>
Committed: Tue Nov 4 11:07:23 2014 -0800

----------------------------------------------------------------------
 .project                                   |  11 ++
 tourdeflexmobile/src/TourDeFlexMobile.mxml | 203 ++++++++++++++++++------
 2 files changed, 168 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-examples/blob/7a933e28/.project
----------------------------------------------------------------------
diff --git a/.project b/.project
new file mode 100644
index 0000000..d160bcb
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tourdeflexmobile</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/7a933e28/tourdeflexmobile/src/TourDeFlexMobile.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/TourDeFlexMobile.mxml b/tourdeflexmobile/src/TourDeFlexMobile.mxml
index 6a9dc94..e49714c 100644
--- a/tourdeflexmobile/src/TourDeFlexMobile.mxml
+++ b/tourdeflexmobile/src/TourDeFlexMobile.mxml
@@ -19,14 +19,20 @@ limitations under the License.
 -->
 
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
-							xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" applicationComplete="init(event)">
+			   xmlns:s="library://ns.adobe.com/flex/spark" 
+			   applicationDPI="160" 
+			   applicationComplete="init(event)">
 	
 	<fx:Style source="styles.css"/>
 	
 	<fx:Script>
 		<![CDATA[
+			import mx.core.FlexGlobals;
 			import mx.events.FlexEvent;
-			
+			import flash.utils.Timer;
+			import flash.events.MouseEvent;
+			import flash.events.TimerEvent;
+			import flash.events.Event;
 			import spark.events.IndexChangeEvent;
 			
 			import AIRViews.AccelerometerView;
@@ -58,52 +64,89 @@ limitations under the License.
 			
 			[Bindable]
 			private var currentStageWidth:Number;
-		
+			
 			[Bindable]
 			private var currentStageHeight:Number;
 			
+			public static var SLIDE_INTERVAL:int = 40;			
+			public static var STEPS:int = 6; 
+			
+			protected var _slideTimer:Timer = new Timer(SLIDE_INTERVAL, STEPS);
+			public static const CLICKED:String = "slideOutClicked";
+			protected var _buttonEnabled:Boolean = true;
+			
 			protected function init(event:FlexEvent):void
 			{
-				stage.addEventListener(Event.RESIZE, orientationHandler);
+				btn.addEventListener(MouseEvent.CLICK, slideButtonHandler);
+				//btn.addEventListener(UIButton.CLICKED, slideButtonHandler);
+				_slideTimer.addEventListener(TimerEvent.TIMER, doSlide);		
+				_slideTimer.addEventListener(TimerEvent.TIMER_COMPLETE, slideComplete); 
 				
-				currentStageWidth = stage.stageWidth*-1;
-				lateralMenu.x = currentStageWidth;
-				currentStageHeight = navigator.height-45;
-				lateralMenu.height = currentStageHeight;			
-				lateralMenu.x = currentStageWidth;
-				isOpen = false;
 			}
 			
-			private function orientationHandler(event:Event):void{
-				currentStageWidth = stage.stageWidth*-1;
-				
-				if(isOpen == false){
-					lateralMenu.x = currentStageWidth;
-				}
-				
-				currentStageHeight = navigator.height-45;
-				lateralMenu.height = currentStageHeight;	
-				
-				trace(lateralMenu.height);
+			
+			
+			public function open(animated:Boolean = true):void 
+			{				
+				if (!navigators.mouseEnabled)					
+					return;				
+				navigators.mouseEnabled = navigators.mouseChildren = false;				
+				if (animated) 
+				{					
+					_slideTimer.repeatCount = Math.max(Math.floor(STEPS * (1 - navigators.x / lateralMenu.width)),
1);					
+					_slideTimer.reset();				
+					_slideTimer.start();	
+					//moveIn.play();
+					//moveOut.play();
+				}					
+				else 
+				{	
+					navigators.x = lateralMenu.width;	
+					!navigators.mouseEnabled;
+				}				
 			}
 			
-			protected function menuHandler(event:MouseEvent):void
+			public function close(animated:Boolean = true):void 
+			{				
+				navigators.mouseEnabled = navigators.mouseChildren = true;				
+				if (animated) 
+				{					
+					_slideTimer.repeatCount = Math.max(Math.floor(STEPS * navigators.x / lateralMenu.width),
1);					
+					_slideTimer.reset();					
+					_slideTimer.start();					
+				}				
+				else {					
+					navigators.x = 0;				
+				}			
+			} 
+			
+			
+			
+			/*		protected function menuHandler(event:MouseEvent):void
 			{
-				
-				if(isOpen == true){
-					moveOut.play();
-					isOpen = false;
-				} else if(isOpen == false){
-					moveIn.play();
-					isOpen = true;
-				}
+			if(isOpen == true)
+			{
+			moveOut.play();
+			stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);	
+			//navigators.mouseEnabled = navigators.mouseChildren = false;		
+			navigators.includeInLayout = false;
+			isOpen = false;
+			} 
+			else if(isOpen == false)
+			{
+			moveIn.play();
+			stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); 
+			//navigators.mouseEnabled = navigators.mouseChildren = true;	
+			isOpen = true;
 			}
+			}*/
 			
 			protected function changeHandler(event:IndexChangeEvent):void
 			{
-				isOpen = false;
-				moveOut.play();
-				
+				//isOpen = false;
+				//moveIn.play();
+				close();
+				stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); 
 				navigator.pushView(componentsList.selectedItem.view);
 			}
 			
@@ -113,26 +156,88 @@ limitations under the License.
 				moveOut.play();
 			}
 			
+			protected var _startX:Number;
+			
+			protected function slideButtonHandler(event:Event):void 
+			{				
+				dispatchEvent(new Event(CLICKED));				
+				navigators.mouseEnabled = navigators.mouseChildren = !navigators.mouseEnabled;		
+				if (_buttonEnabled) 
+				{					
+					_slideTimer.repeatCount = STEPS;				
+					_slideTimer.reset();				
+					_slideTimer.start();					
+				}
+				
+			}
+			
+			
+			protected function mouseDown(event:MouseEvent):void 
+			{			
+				if (!navigators.mouseEnabled && mouseX > lateralMenu.width && mouseY
> 45) 
+				{					
+					_startX = mouseX;				
+					stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp);					
+					stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);			
+				}		
+			} 
+			
+			
+			protected function doSlide(event:TimerEvent):void 
+			{
+				
+				var slideTimer:Timer = Timer(event.currentTarget);				
+				var t:Number = slideTimer.currentCount/slideTimer.repeatCount;			
+				navigators.x = (navigators.mouseEnabled ? (1-t) : t) * lateralMenu.width;
+				
+			} 
+			
+			protected function slideComplete(event:TimerEvent):void 
+			{				
+				removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown);	
+				navigators.mouseEnabled;
+				if (!navigators.mouseEnabled) 
+				{					
+					addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);					
+				}				
+			} 
+			
+			protected function mouseMove(event:MouseEvent):void 
+			{							
+				navigators.x = Math.max(Math.min(mouseX - _startX + lateralMenu.width, lateralMenu.width),
0);				
+			} 
+			
+			protected function mouseUp(event:MouseEvent):void 
+			{
+				
+				stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUp);				
+				stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove);				
+				navigators.mouseEnabled = navigators.mouseChildren = mouseX < lateralMenu.width /
2;			
+				_slideTimer.repeatCount = Math.max(navigators.mouseEnabled ? Math.floor(STEPS * navigators.x
/ lateralMenu.width) : Math.floor(STEPS * (1 - navigators.x / lateralMenu.width)), 1);			

+				_slideTimer.reset();				
+				_slideTimer.start();
+				
+			}
+			
+			
+			
 		]]>
 	</fx:Script>
 	
 	<fx:Declarations>
-		<s:Move id="moveIn" duration="200" target="{lateralMenu}" xTo="0"/>
-		<s:Move id="moveOut" duration="200" target="{lateralMenu}" xTo="{currentStageWidth}"/>
+		<s:Move id="moveIn" duration="200" target="{navigators}" xTo="0"/>
+		<s:Move id="moveOut" duration="200" target="{navigators}" xTo="200"/>
 	</fx:Declarations>
 	
-	<s:ViewNavigator id="navigator" firstView="views.BlogView" width="100%" height="100%">
-		<s:navigationContent>
-			<s:Button icon="@Embed('assets/images/logo.png')" height="35" width="77" label="Menu"
click="menuHandler(event)"/>
-		</s:navigationContent>
-	</s:ViewNavigator>
 	
-	<s:Group id="lateralMenu" width="100%" y="45">
-		<s:Graphic width="100%" height="100%" click="menuBackgroundHandler(event)">
-			<s:BitmapImage width="100%" height="100%" scaleMode="zoom" source="@Embed('assets/images/bg.png')"/>
-		</s:Graphic>
+	
+	<s:Group id="lateralMenu" width="225" y="0" height="100%">
+		<!--s:Graphic width="100%" height="100%" click="menuBackgroundHandler(event)">
+		<s:BitmapImage width="100%" height="100%" scaleMode="zoom" source="@Embed('assets/images/bg.png')"/>
+		</s:Graphic-->
 		
-		<s:List id="componentsList" itemRenderer="renderers.MenuRenderer" width="200" height="100%"
change="changeHandler(event)" contentBackgroundColor="#000000">
+		<s:List id="componentsList" itemRenderer="renderers.MenuRenderer" width="225" height="100%"

+				change="changeHandler(event)" contentBackgroundColor="#000000">
 			<s:ArrayList>
 				<fx:Object label="UI Components" type="separator"/>			
 				<fx:Object label="ButtonBar" type="view" view="{ButtonBarView}"/>
@@ -167,5 +272,11 @@ limitations under the License.
 		</s:List>
 	</s:Group>
 	
-	
+	<s:Group id="navigators" width="{FlexGlobals.topLevelApplication.width}" height="{FlexGlobals.topLevelApplication.height}">
+		<s:ViewNavigator id="navigator" firstView="views.BlogView" width="100%" height="100%">
+			<s:navigationContent>
+				<s:Button icon="@Embed('assets/images/logo.png')" height="35" width="77" label="Menu"
id="btn"/>
+			</s:navigationContent>
+		</s:ViewNavigator>
+	</s:Group>
 </s:Application>


Mime
View raw message