OSDN Git Service

Version 0.6.210, add Android browser PC mode detection, forget to commit X.UIPages.
authoritozyun <itozyun@user.sourceforge.jp>
Wed, 10 Feb 2016 07:54:46 +0000 (16:54 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Wed, 10 Feb 2016 07:54:46 +0000 (16:54 +0900)
0.6.x/js/22_uipage/01_Page.js [new file with mode: 0644]

diff --git a/0.6.x/js/22_uipage/01_Page.js b/0.6.x/js/22_uipage/01_Page.js
new file mode 100644 (file)
index 0000000..1279bda
--- /dev/null
@@ -0,0 +1,125 @@
+var XUI_PAGES = {},\r
+       XUI_Page_prev = [],\r
+       XUI_Page_current,\r
+       XUI_Page_new,\r
+       XUI_Page_isBack,\r
+       XUI_Page_direction;\r
+\r
+X.UI.Page = X_EventDispatcher[ 'inherits' ](\r
+       'Page',\r
+       X_Class.NONE,\r
+       {\r
+               'Constructor' : function( title, uid ){\r
+                       var args = X_Array_copy( arguments );\r
+                       \r
+                       if( !XUI_PAGES[ uid ] ){\r
+                               args.splice( 0, 2 );\r
+                               XUI_PAGES[ uid ] = {\r
+                                       page    : this,\r
+                                       title   : title,\r
+                                       uid     : uid,\r
+                                       uinodes : args\r
+                               };\r
+                       };\r
+               },\r
+               \r
+               'show' : function( direction ){\r
+                       var size;\r
+                       \r
+                       if( XUI_Page_current !== this ){\r
+                               XUI_Page_new       = this;\r
+                               XUI_Page_direction = direction;\r
+                               \r
+                               if( XUI_Page_current ){\r
+                                       if( XUI_Page_current[ 'dispatch' ]( XUI_Event.PAGE_HIDE_BEFORE ) & X_CALLBACK_PREVENT_DEFAULT ){\r
+                                               return false;\r
+                                       };\r
+                                       XUI_Page_current[ 'dispatch' ]( XUI_Event.PAGE_HIDE );\r
+                                       \r
+                                       console.log( 'スライドアウト開始' );\r
+                                       \r
+                                       // slideOut\r
+                                       XUI_rootData.xnode\r
+                                               [ 'animate' ]( {\r
+                                                       'from'     : { x : 0 },\r
+                                                       'to'       : { x : X[ 'ViewPort' ][ 'getSize' ]()[ 0 ] * -.05 * direction, opacity : 0 },\r
+                                                       'duration' : 333,\r
+                                                       'easing'   : 'circular',\r
+                                                       'lazyRelease' : 0 })\r
+                                               [ 'listenOnce' ]( X_EVENT_ANIME_END, XUI_Page_onSlideOut );\r
+                               } else {\r
+                                       XUI_Page_onSlideOut();\r
+                               };\r
+                       };\r
+               }\r
+       }\r
+);\r
+\r
+X.UI.Page[ 'move' ] = XUI_Page_move;\r
+X.UI.Page[ 'back' ] = XUI_Page_back;\r
+\r
+function XUI_Page_move( uid ){\r
+       for( var k in XUI_PAGES ){\r
+               if( XUI_PAGES[ k ].uid === uid ){\r
+                       return XUI_PAGES[ k ].page[ 'show' ]( 1 );\r
+               };\r
+       };\r
+};\r
+\r
+function XUI_Page_back(){\r
+       var last = XUI_Page_prev[ XUI_Page_prev.length - 1 ];\r
+       \r
+       for( var k in XUI_PAGES ){\r
+               if( XUI_PAGES[ k ].page === last ){\r
+                       XUI_Page_isBack = true;\r
+                       XUI_Page_prev.pop();\r
+                       return XUI_PAGES[ k ].page[ 'show' ]( -1 );\r
+               };\r
+       };\r
+};\r
+\r
+function XUI_Page_onSlideOut(){\r
+       var k, uinodes;\r
+       \r
+       if( XUI_Page_current ){\r
+               XUI_rootData.removeAt( 0, 9999 );\r
+               if( !XUI_Page_isBack ){\r
+                       XUI_Page_prev.push( XUI_Page_current );\r
+               };\r
+       };\r
+       \r
+       XUI_Page_isBack  = false;\r
+       XUI_Page_current = XUI_Page_new;\r
+               \r
+       for( k in XUI_PAGES ){\r
+               if( XUI_PAGES[ k ].page === XUI_Page_new ){\r
+                       uinodes = XUI_PAGES[ k ].uinodes;\r
+               };\r
+       };\r
+       \r
+       \r
+       \r
+       if( !XUI_rootData ){\r
+               X.UI.Root.apply( 1, uinodes ).attr( { opacity : 0 } );\r
+       } else {\r
+               XUI_rootData.User.add.apply( XUI_rootData.User, uinodes );\r
+       };\r
+       \r
+       XUI_rootData[ 'listenOnce' ]( XUI_Event.LAYOUT_COMPLETE, XUI_Page_startSlideIn );\r
+       //if( XUI_rootData.phase < 4 ){\r
+               \r
+       //} else {\r
+       //      XUI_Page_startSlideIn();\r
+       //};\r
+       console.log( 'スライドアウト完了' );\r
+};\r
+\r
+function XUI_Page_startSlideIn(){\r
+       console.log( 'スライドイン開始' );\r
+       XUI_rootData.xnode[ 'animate' ]( {\r
+                                                       'from'     : { x : X[ 'ViewPort' ][ 'getSize' ]()[ 0 ] * .05 * XUI_Page_direction, opacity : 0 },\r
+                                                       'to'       : { x : 0, opacity : 1 },\r
+                                                       'duration' : 333,\r
+                                                       'easing'   : 'circular',\r
+                                                       'lazyRelease' : 0 });\r
+};\r