├── test ├── github.txt └── test.html ├── .gitignore ├── images ├── Owl.bmp ├── Sun.bmp ├── fan.gif ├── get.gif ├── Alien1.bmp ├── Alien2.bmp ├── Bear.bmp ├── Beaver.bmp ├── David.bmp ├── Dragon.bmp ├── Earth.bmp ├── Fish.bmp ├── Frog1.bmp ├── Frog2.bmp ├── Hand.bmp ├── Leaf.bmp ├── Moon.bmp ├── Rabbit.bmp ├── Rose.bmp ├── Women.bmp ├── haitun.gif ├── help.png ├── intro.gif ├── panda.gif ├── store.png ├── Balloon.bmp ├── DaVinci.bmp ├── Monkey1.bmp ├── Monkey2.bmp ├── PartyHat.bmp ├── Penguin.bmp ├── Shamrock.bmp ├── elephant.gif ├── home-btn.png ├── picture.png ├── Fireworks1.bmp ├── Fireworks2.bmp ├── Hitchcock.bmp ├── ajax-loader.gif ├── background.gif ├── store-pull.png ├── success-bg.gif ├── BirthdayCake.bmp └── ChocolateCake.bmp ├── media ├── lose.wav ├── win.wav ├── Boing.WAV ├── Click.wav ├── Start.wav ├── spread.wav ├── ClickRight.wav └── ClickWrong.wav ├── charts ├── Index-class.vsd ├── Score-class.vsd ├── Store-class.vsd ├── Timer-class.vsd ├── 绯荤粺鎬讳綋缁撴瀯.vsd ├── Canvas-class.vsd ├── Failed-class.vsd ├── Images-class.vsd ├── Success-class.vsd ├── system-net-chart.vsd ├── user-click-chart.vsd ├── 绯荤粺涓昏绫讳箣闂寸殑鍏崇郴.vsd ├── Index-class-chart.vsd ├── StorageModel-class.vsd └── system-flow-chart.vsd ├── js ├── out │ ├── assets │ │ ├── css │ │ │ ├── logo.png │ │ │ └── external-small.png │ │ ├── favicon.png │ │ ├── img │ │ │ └── spinner.gif │ │ ├── index.html │ │ ├── js │ │ │ ├── yui-prettify.js │ │ │ ├── api-filter.js │ │ │ ├── api-search.js │ │ │ ├── api-list.js │ │ │ └── apidocs.js │ │ └── vendor │ │ │ └── prettify │ │ │ ├── prettify-min.css │ │ │ ├── CHANGES.html │ │ │ ├── README.html │ │ │ └── COPYING │ ├── classes │ │ ├── index.html │ │ ├── fan1xia.Index.prototype.html │ │ ├── fan1xia.Failed.prototype.html │ │ ├── fan1xia.Success.prototype.html │ │ └── fan1xia.Failed.html │ ├── files │ │ ├── index.html │ │ └── model_storageModel.js.html │ ├── api.js │ ├── index.html │ └── modules │ │ ├── imagesModel.html │ │ ├── storageModel.html │ │ ├── index.html │ │ └── CanvasModel.html ├── loading.js ├── html5.js ├── share.js ├── model │ ├── storageModel.js │ └── imagesModel.js └── index.js ├── plugins ├── rotate3Di-master │ ├── .gitmodules │ ├── README.md │ └── rotate3Di.js ├── animate-custom │ └── animate-custom.js ├── yanSound │ └── sound.js └── assets │ └── countdown │ ├── jquery.countdown.css │ └── jquery.countdown.js ├── .project ├── .gitattributes ├── MIT-LICENSE.txt ├── css ├── reset.css └── index.css ├── README.md ├── index.manifest └── index.html /test/github.txt: -------------------------------------------------------------------------------- 1 | sdagsdagsdggbbbsdgdsg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.pyc 3 | *.pyo 4 | .svn 5 | _svn 6 | */Thumbs.db 7 | -------------------------------------------------------------------------------- /images/Owl.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Owl.bmp -------------------------------------------------------------------------------- /images/Sun.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Sun.bmp -------------------------------------------------------------------------------- /images/fan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/fan.gif -------------------------------------------------------------------------------- /images/get.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/get.gif -------------------------------------------------------------------------------- /media/lose.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/lose.wav -------------------------------------------------------------------------------- /media/win.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/win.wav -------------------------------------------------------------------------------- /images/Alien1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Alien1.bmp -------------------------------------------------------------------------------- /images/Alien2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Alien2.bmp -------------------------------------------------------------------------------- /images/Bear.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Bear.bmp -------------------------------------------------------------------------------- /images/Beaver.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Beaver.bmp -------------------------------------------------------------------------------- /images/David.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/David.bmp -------------------------------------------------------------------------------- /images/Dragon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Dragon.bmp -------------------------------------------------------------------------------- /images/Earth.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Earth.bmp -------------------------------------------------------------------------------- /images/Fish.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Fish.bmp -------------------------------------------------------------------------------- /images/Frog1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Frog1.bmp -------------------------------------------------------------------------------- /images/Frog2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Frog2.bmp -------------------------------------------------------------------------------- /images/Hand.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Hand.bmp -------------------------------------------------------------------------------- /images/Leaf.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Leaf.bmp -------------------------------------------------------------------------------- /images/Moon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Moon.bmp -------------------------------------------------------------------------------- /images/Rabbit.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Rabbit.bmp -------------------------------------------------------------------------------- /images/Rose.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Rose.bmp -------------------------------------------------------------------------------- /images/Women.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Women.bmp -------------------------------------------------------------------------------- /images/haitun.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/haitun.gif -------------------------------------------------------------------------------- /images/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/help.png -------------------------------------------------------------------------------- /images/intro.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/intro.gif -------------------------------------------------------------------------------- /images/panda.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/panda.gif -------------------------------------------------------------------------------- /images/store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/store.png -------------------------------------------------------------------------------- /media/Boing.WAV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/Boing.WAV -------------------------------------------------------------------------------- /media/Click.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/Click.wav -------------------------------------------------------------------------------- /media/Start.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/Start.wav -------------------------------------------------------------------------------- /media/spread.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/spread.wav -------------------------------------------------------------------------------- /images/Balloon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Balloon.bmp -------------------------------------------------------------------------------- /images/DaVinci.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/DaVinci.bmp -------------------------------------------------------------------------------- /images/Monkey1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Monkey1.bmp -------------------------------------------------------------------------------- /images/Monkey2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Monkey2.bmp -------------------------------------------------------------------------------- /images/PartyHat.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/PartyHat.bmp -------------------------------------------------------------------------------- /images/Penguin.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Penguin.bmp -------------------------------------------------------------------------------- /images/Shamrock.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Shamrock.bmp -------------------------------------------------------------------------------- /images/elephant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/elephant.gif -------------------------------------------------------------------------------- /images/home-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/home-btn.png -------------------------------------------------------------------------------- /images/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/picture.png -------------------------------------------------------------------------------- /charts/Index-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Index-class.vsd -------------------------------------------------------------------------------- /charts/Score-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Score-class.vsd -------------------------------------------------------------------------------- /charts/Store-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Store-class.vsd -------------------------------------------------------------------------------- /charts/Timer-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Timer-class.vsd -------------------------------------------------------------------------------- /charts/绯荤粺鎬讳綋缁撴瀯.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/绯荤粺鎬讳綋缁撴瀯.vsd -------------------------------------------------------------------------------- /images/Fireworks1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Fireworks1.bmp -------------------------------------------------------------------------------- /images/Fireworks2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Fireworks2.bmp -------------------------------------------------------------------------------- /images/Hitchcock.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/Hitchcock.bmp -------------------------------------------------------------------------------- /images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/ajax-loader.gif -------------------------------------------------------------------------------- /images/background.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/background.gif -------------------------------------------------------------------------------- /images/store-pull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/store-pull.png -------------------------------------------------------------------------------- /images/success-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/success-bg.gif -------------------------------------------------------------------------------- /media/ClickRight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/ClickRight.wav -------------------------------------------------------------------------------- /media/ClickWrong.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/media/ClickWrong.wav -------------------------------------------------------------------------------- /charts/Canvas-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Canvas-class.vsd -------------------------------------------------------------------------------- /charts/Failed-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Failed-class.vsd -------------------------------------------------------------------------------- /charts/Images-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Images-class.vsd -------------------------------------------------------------------------------- /charts/Success-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Success-class.vsd -------------------------------------------------------------------------------- /images/BirthdayCake.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/BirthdayCake.bmp -------------------------------------------------------------------------------- /images/ChocolateCake.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/images/ChocolateCake.bmp -------------------------------------------------------------------------------- /charts/system-net-chart.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/system-net-chart.vsd -------------------------------------------------------------------------------- /charts/user-click-chart.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/user-click-chart.vsd -------------------------------------------------------------------------------- /charts/绯荤粺涓昏绫讳箣闂寸殑鍏崇郴.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/绯荤粺涓昏绫讳箣闂寸殑鍏崇郴.vsd -------------------------------------------------------------------------------- /js/out/assets/css/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/js/out/assets/css/logo.png -------------------------------------------------------------------------------- /js/out/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/js/out/assets/favicon.png -------------------------------------------------------------------------------- /charts/Index-class-chart.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/Index-class-chart.vsd -------------------------------------------------------------------------------- /charts/StorageModel-class.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/StorageModel-class.vsd -------------------------------------------------------------------------------- /charts/system-flow-chart.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/charts/system-flow-chart.vsd -------------------------------------------------------------------------------- /js/out/assets/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/js/out/assets/img/spinner.gif -------------------------------------------------------------------------------- /js/out/assets/css/external-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanhaijing/fan1xia/HEAD/js/out/assets/css/external-small.png -------------------------------------------------------------------------------- /plugins/rotate3Di-master/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "jquery-css-transform"] 2 | path = jquery-css-transform 3 | url = git@github.com:zachstronaut/jquery-css-transform.git 4 | -------------------------------------------------------------------------------- /js/loading.js: -------------------------------------------------------------------------------- 1 | (function($, global){ 2 | "use strict"; 3 | $(window).bind("load", function(){ 4 | $("#loading").fadeOut(); 5 | }); 6 | }(jQuery, window)); 7 | -------------------------------------------------------------------------------- /js/out/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redirector 5 | 6 | 7 | 8 | Click here to redirect 9 | 10 | 11 | -------------------------------------------------------------------------------- /js/out/classes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redirector 5 | 6 | 7 | 8 | Click here to redirect 9 | 10 | 11 | -------------------------------------------------------------------------------- /js/out/files/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redirector 5 | 6 | 7 | 8 | Click here to redirect 9 | 10 | 11 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | fan1xia 4 | 5 | 6 | 7 | 8 | 9 | 10 | com.aptana.projects.webnature 11 | 12 | 13 | -------------------------------------------------------------------------------- /plugins/animate-custom/animate-custom.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $('.my-animate').live({ 3 | mouseenter:function() { 4 | var anim = $(this).attr('for'); 5 | $(this).addClass(anim); 6 | }, 7 | mouseleave:function() { 8 | var anim = $(this).attr('for'); 9 | $(this).removeClass(anim); 10 | } 11 | }); 12 | }); -------------------------------------------------------------------------------- /js/html5.js: -------------------------------------------------------------------------------- 1 | // For discussion and comments, see: http://remysharp.com/2009/01/07/html5-enabling-script/ 2 | (function() { 3 | if (! /*@cc_on!@*/ 0) return; 4 | var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','); 5 | for (var i = 0; i < e.length; i++) { 6 | document.createElement(e[i]) 7 | } 8 | })() -------------------------------------------------------------------------------- /js/out/assets/js/yui-prettify.js: -------------------------------------------------------------------------------- 1 | YUI().use('node', function(Y) { 2 | var code = Y.all('.prettyprint.linenums'); 3 | if (code.size()) { 4 | code.each(function(c) { 5 | var lis = c.all('ol li'), 6 | l = 1; 7 | lis.each(function(n) { 8 | n.prepend(''); 9 | l++; 10 | }); 11 | }); 12 | var h = location.hash; 13 | location.hash = ''; 14 | h = h.replace('LINE_', 'LINENUM_'); 15 | location.hash = h; 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=lf 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /js/out/assets/vendor/prettify/prettify-min.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} -------------------------------------------------------------------------------- /plugins/yanSound/sound.js: -------------------------------------------------------------------------------- 1 | (function(window){ 2 | 'use strict'; 3 | var 4 | Sound = function(){ 5 | this.sound = null; 6 | this.init(); 7 | }; 8 | 9 | Sound.prototype = { 10 | init:function(){ 11 | //看是否存在sound元素 12 | if(this.sound === null){ 13 | this.sound = document.createElement('audio'); 14 | this.sound.setAttribute('src', ''); 15 | this.sound.setAttribute('autoplay', true); 16 | this.sound.setAttribute('id', 'yanSound'); 17 | } 18 | }, 19 | src:function(src){ 20 | this.sound.src = src; 21 | }, 22 | play:function(src){ 23 | src = src || this.sound.src; 24 | 25 | this.src(src); 26 | } 27 | }; 28 | 29 | window.yan = window.yan || {}; 30 | window.yan.Sound = window.yan.Sound || Sound; 31 | }(window)); 32 | -------------------------------------------------------------------------------- /test/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 翻一下 6 | 16 | 17 | 18 | 27 | 28 | 29 |
30 | 1234556 31 |
32 | 33 | -------------------------------------------------------------------------------- /js/share.js: -------------------------------------------------------------------------------- 1 | //分享到QQ空间数据 2 | (function() { 3 | var p = { 4 | url : location.href, 5 | showcount : '1', /*是否显示分享总数,显示:'1',不显示:'0' */ 6 | desc : '您是否能找到板上所有的匹配?翻转一块墙砖会显示一张图片,然后尝试在其他地方找到其匹配。记住图片的位置,因为如果翻转的墙砖上的图片不匹配,您将必须重试。匹配所有图片才能获胜。', /*默认分享理由(可选)*/ 7 | summary : '翻一下是一款类似小丑配对的游戏,能增加记忆力', /*分享摘要(可选)*/ 8 | title : '翻一下', /*分享标题(可选)*/ 9 | site : 'https://github.com/yanhaijing', /*分享来源 如:腾讯网(可选)*/ 10 | pics : 'http://yanhaijing.github.io/fan1xia/images/fan.gif', /*分享图片的路径(可选)*/ 11 | style:'102', 12 | width:145, 13 | height:30 14 | }; 15 | var s = []; 16 | for (var i in p) { 17 | s.push(i + '=' + encodeURIComponent(p[i] || '')); 18 | } 19 | $("#share-qzone-failed").attr("href", "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?" + s.join('&')); 20 | })(); 21 | 22 | -------------------------------------------------------------------------------- /MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 yanhaijing 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /css/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, menu, nav, section { 29 | display: block; 30 | } 31 | body { 32 | line-height: 1; 33 | } 34 | ol, ul { 35 | list-style: none; 36 | } 37 | blockquote, q { 38 | quotes: none; 39 | } 40 | blockquote:before, blockquote:after, 41 | q:before, q:after { 42 | content: ''; 43 | content: none; 44 | } 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | # [Fan1xia](https://github.com/yanhaijing/fan1xia) [![license](http://img.shields.io/npm/l/express.svg)](https://github.com/yanhaijing/fan1xia/blob/master/MIT-LICENSE.txt) 6 | 7 | fan1xia is a game like window 7's little games work on chrome/firefox/opera/ie10+ 8 | 9 | ## Platform 10 | 11 | * firefox 12 | * chrome 13 | * opera 14 | * safira 15 | * ie8+ 16 | 17 | ## Demo 18 | 19 | [http://yanhaijing.github.com/fan1xia](http://yanhaijing.github.com/fan1xia) 20 | 21 | ## Issues 22 | 23 | [Report a Problem](https://github.com/yanhaijing/fan1xia/issues) 24 | 25 | ## Authors 26 | 27 | **yanhaijing** 28 | 29 | - [Twitter](http://t.qq.com/yanhaijing1234 "yanhaijing's Twitter") 30 | - [Email](http://yanhaijing1234@gmail.com "yanhaijing's Email") 31 | 32 | ## Copyright and license 33 | 34 | Copyright © 2013 yanhaijing. All Rights Reserved 35 | 36 | Licensed under the MIT-LICENSE; 37 | you may not use this work except in compliance with the License. 38 | You may obtain a copy of the License in the LICENSE file, or at: 39 | [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) 40 | 41 | **note:** Some pictures from Google and Microsoft, so they authorized in use 42 | -------------------------------------------------------------------------------- /js/out/api.js: -------------------------------------------------------------------------------- 1 | YUI.add("yuidoc-meta", function(Y) { 2 | Y.YUIDoc = { meta: { 3 | "classes": [ 4 | "fan1xia.Failed", 5 | "fan1xia.Failed.prototype", 6 | "fan1xia.Index", 7 | "fan1xia.Index.prototype", 8 | "fan1xia.Success", 9 | "fan1xia.Success.prototype", 10 | "fan1xia.model.Canvas", 11 | "fan1xia.model.Canvas.prototype", 12 | "fan1xia.model.Images", 13 | "fan1xia.model.Images.prototype", 14 | "fan1xia.model.Score", 15 | "fan1xia.model.Score.prototype", 16 | "fan1xia.model.StorageModel", 17 | "fan1xia.model.StorageModel.prototype", 18 | "fan1xia.model.Store", 19 | "fan1xia.model.Store.prototype", 20 | "fan1xia.model.Timer", 21 | "fan1xia.model.Timer.prototype" 22 | ], 23 | "modules": [ 24 | "canvasModel", 25 | "imagesModel", 26 | "index", 27 | "storageModel" 28 | ], 29 | "allModules": [ 30 | { 31 | "displayName": "canvasModel", 32 | "name": "canvasModel", 33 | "description": "画布对象" 34 | }, 35 | { 36 | "displayName": "imagesModel", 37 | "name": "imagesModel", 38 | "description": "图片组对象" 39 | }, 40 | { 41 | "displayName": "index", 42 | "name": "index", 43 | "description": "Index js主页js" 44 | }, 45 | { 46 | "displayName": "storageModel", 47 | "name": "storageModel", 48 | "description": "本地存储类" 49 | } 50 | ] 51 | } }; 52 | }); -------------------------------------------------------------------------------- /js/out/assets/js/api-filter.js: -------------------------------------------------------------------------------- 1 | YUI.add('api-filter', function (Y) { 2 | 3 | Y.APIFilter = Y.Base.create('apiFilter', Y.Base, [Y.AutoCompleteBase], { 4 | // -- Initializer ---------------------------------------------------------- 5 | initializer: function () { 6 | this._bindUIACBase(); 7 | this._syncUIACBase(); 8 | }, 9 | getDisplayName: function(name) { 10 | 11 | Y.each(Y.YUIDoc.meta.allModules, function(i) { 12 | if (i.name === name && i.displayName) { 13 | name = i.displayName; 14 | } 15 | }); 16 | 17 | return name; 18 | } 19 | 20 | }, { 21 | // -- Attributes ----------------------------------------------------------- 22 | ATTRS: { 23 | resultHighlighter: { 24 | value: 'phraseMatch' 25 | }, 26 | 27 | // May be set to "classes" or "modules". 28 | queryType: { 29 | value: 'classes' 30 | }, 31 | 32 | source: { 33 | valueFn: function() { 34 | var self = this; 35 | return function(q) { 36 | var data = Y.YUIDoc.meta[self.get('queryType')], 37 | out = []; 38 | Y.each(data, function(v) { 39 | if (v.toLowerCase().indexOf(q.toLowerCase()) > -1) { 40 | out.push(v); 41 | } 42 | }); 43 | return out; 44 | }; 45 | } 46 | } 47 | } 48 | }); 49 | 50 | }, '3.4.0', {requires: [ 51 | 'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources' 52 | ]}); 53 | -------------------------------------------------------------------------------- /plugins/assets/countdown/jquery.countdown.css: -------------------------------------------------------------------------------- 1 | .countdownHolder{ 2 | width:450px; 3 | margin:0 auto; 4 | font: 40px/1.5 'Open Sans Condensed',sans-serif; 5 | text-align:center; 6 | letter-spacing:-3px; 7 | } 8 | 9 | .position{ 10 | display: inline-block; 11 | height: 1.6em; 12 | overflow: hidden; 13 | position: relative; 14 | width: 1.05em; 15 | } 16 | 17 | .digit{ 18 | position:absolute; 19 | display:block; 20 | width:1em; 21 | background-color:#444; 22 | border-radius:0.2em; 23 | text-align:center; 24 | color:#fff; 25 | letter-spacing:-1px; 26 | } 27 | 28 | .digit.static{ 29 | box-shadow:1px 1px 1px rgba(4, 4, 4, 0.35); 30 | 31 | background-image: linear-gradient(bottom, #3A3A3A 50%, #444444 50%); 32 | background-image: -o-linear-gradient(bottom, #3A3A3A 50%, #444444 50%); 33 | background-image: -moz-linear-gradient(bottom, #3A3A3A 50%, #444444 50%); 34 | background-image: -webkit-linear-gradient(bottom, #3A3A3A 50%, #444444 50%); 35 | background-image: -ms-linear-gradient(bottom, #3A3A3A 50%, #444444 50%); 36 | 37 | background-image: -webkit-gradient( 38 | linear, 39 | left bottom, 40 | left top, 41 | color-stop(0.5, #3A3A3A), 42 | color-stop(0.5, #444444) 43 | ); 44 | } 45 | 46 | /** 47 | * You can use these classes to hide parts 48 | * of the countdown that you don't need. 49 | */ 50 | 51 | .countDays{ /* display:none !important;*/ } 52 | .countDiv0{ /* display:none !important;*/ } 53 | .countHours{} 54 | .countDiv1{} 55 | .countMinutes{} 56 | .countDiv2{} 57 | .countSeconds{} 58 | 59 | 60 | .countDiv{ 61 | display:inline-block; 62 | width:16px; 63 | height:1.6em; 64 | position:relative; 65 | } 66 | 67 | .countDiv:before, 68 | .countDiv:after{ 69 | position:absolute; 70 | width:5px; 71 | height:5px; 72 | background-color:#444; 73 | border-radius:50%; 74 | left:50%; 75 | margin-left:-3px; 76 | top:0.5em; 77 | box-shadow:1px 1px 1px rgba(4, 4, 4, 0.5); 78 | content:''; 79 | } 80 | 81 | .countDiv:after{ 82 | top:0.9em; 83 | } -------------------------------------------------------------------------------- /index.manifest: -------------------------------------------------------------------------------- 1 | CACHE MANIFEST 2 | #上一行是必须书写的。 3 | #version 1.0.0 4 | 5 | #js 6 | js/html5.js 7 | js/index.js 8 | js/loading.js 9 | js/model/canvasModel.js 10 | js/model/imagesModel.js 11 | js/model/storageModel.js 12 | 13 | #============================= 14 | #css 15 | css/reset.css 16 | css/index.css 17 | 18 | #============================= 19 | #media 20 | media/spread.wav 21 | media/Click.wav 22 | 23 | #================================ 24 | #plugins 25 | 26 | #jquery 27 | plugins/jquery/jquery-1.8.2.js 28 | 29 | #countdown 30 | plugins/assets/countdown/jquery.countdown.js 31 | plugins/assets/countdown/jquery.countdown.css 32 | 33 | #yanSound 34 | plugins/yanSound/sound.js 35 | 36 | #jquery.yan.ui 37 | plugins/jquery.yan.ui/jquery.yan.ui.3.0.js 38 | 39 | #rotate3Di-master 40 | plugins/rotate3Di-master/rotate3Di.js 41 | 42 | #animate-custom 43 | plugins/animate-custom/animate-custom.css 44 | plugins/animate-custom/animate-custom.js 45 | 46 | #=================================== 47 | #images 48 | images/intro.gif 49 | images/help.png 50 | images/picture.png 51 | images/store.png 52 | images/success-bg.gif 53 | images/store-pull.png 54 | images/home-btn.png 55 | images/fan.gif 56 | images/background.gif 57 | images/ajax-loader.gif 58 | images/Alien1.bmp 59 | images/Alien2.bmp 60 | images/Balloon.bmp 61 | images/Bear.bmp 62 | images/Beaver.bmp 63 | images/BirthdayCake.bmp 64 | images/ChocolateCake.bmp 65 | images/DaVinci.bmp 66 | images/David.bmp 67 | images/Dragon.bmp 68 | images/Earth.bmp 69 | images/elephant.gif 70 | images/Fireworks1.bmp 71 | images/Fireworks2.bmp 72 | images/Fish.bmp 73 | images/Frog1.bmp 74 | images/Frog2.bmp 75 | images/get.gif 76 | images/haitun.gif 77 | images/Hand.bmp 78 | images/Hitchcock.bmp 79 | images/Leaf.bmp 80 | images/Monkey1.bmp 81 | images/Monkey2.bmp 82 | images/Moon.bmp 83 | images/Owl.bmp 84 | images/panda.gif 85 | images/PartyHat.bmp 86 | images/Penguin.bmp 87 | images/picture.png 88 | images/Rabbit.bmp 89 | images/Rose.bmp 90 | images/Shamrock.bmp 91 | images/Sun.bmp 92 | images/Women.bmp 93 | 94 | #network 95 | NETWORK: 96 | 97 | js/share.js -------------------------------------------------------------------------------- /js/model/storageModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 本地存储类 3 | * @author yan 4 | * @module storageModel 5 | * @main storageModel 6 | * @namespace fan1xia.model 7 | */ 8 | (function($, global){ 9 | "use strict"; 10 | 11 | /** 12 | * 本地存储类 13 | * @class StorageModel 14 | * @constructor 15 | * @extends fan1xia.model.StorageModel.prototype 16 | */ 17 | var StorageModel = function(){ 18 | /** 19 | * 浏览器寸处对象 20 | * @property storage 21 | * @type Object 22 | * @default null 23 | */ 24 | this.storage = null; 25 | }; 26 | 27 | /** 28 | * 本地存储类原型对象 29 | * @class StorageModel.prototype 30 | * @static 31 | */ 32 | StorageModel.prototype = { 33 | /** 34 | * 初始化 35 | * @method init 36 | */ 37 | init:function(){ 38 | function getLocalStorage(){ 39 | var result = false; 40 | if(typeof global.localStorage === 'object'){ 41 | result = localStorage; 42 | }else if(typeof global.globalStorage === 'object'){ 43 | result = global.globalStorage; 44 | } 45 | 46 | return result; 47 | } 48 | 49 | this.storage = getLocalStorage(); 50 | }, 51 | 52 | /** 53 | * 获取本地存储对象 54 | * @method getStorage 55 | * @return {Object} 本地存储对象 56 | */ 57 | getStorage:function(){ 58 | return this.storage; 59 | }, 60 | 61 | /** 62 | * 存储对象 63 | * @method save 64 | * @param {String} key 存的键 65 | * @param {String} value 要存的值 66 | * @return {Bollean} 存储是否成功 67 | */ 68 | save:function(key, value){ 69 | var 70 | storage = this.storage, 71 | list = false; 72 | if(storage !== false){ 73 | list = storage.setItem(key, value); 74 | } 75 | return list; 76 | }, 77 | 78 | /** 79 | * 载入值 80 | * @method getStorage 81 | * @param {String} key 要去得的键 82 | * @return {Bollean|String} 获取成功返回兼职,失败返回false 83 | */ 84 | load:function(key){ 85 | var 86 | storage = this.storage, 87 | result = false; 88 | if(storage !== false){ 89 | result = storage.getItem(key); 90 | } 91 | 92 | return result; 93 | } 94 | }; 95 | 96 | global.fan1xia = global.fan1xia || {}; 97 | global.fan1xia.model = global.fan1xia.model || {}; 98 | global.fan1xia.model.StorageModel = StorageModel; 99 | }(jQuery, window)); 100 | -------------------------------------------------------------------------------- /plugins/rotate3Di-master/README.md: -------------------------------------------------------------------------------- 1 | # rotate3Di 2 | 3 | Zachary Johnson 4 | 5 | 6 | Rotate3Di is a jQuery Effect Plugin that makes it possible to do an isometric 3D flip or 3D rotation of any HTML content. It also enables custom 3D rotation animations. CSS3 Transforms are used to create this visual "3D" isometric effect. Supported browsers are Safari/Chrome/Webkit, Firefox 3.5+, IE 9+, and Opera 11+. The plugin's functionality includes: setting or animating HTML content to an arbitrary isometric rotation angle, as well as flipping, unflipping, or toggling the flip state of an object. Currently tested with jQuery 1.3.x through 1.6. 7 | 8 | ## Donate to Support this Project 9 | 10 | Rotate3Di is, and will always be, a free plugin. I do spend quite a bit of time answering an increasing number of emails about this project, testing it, and patching bugs. I'd like to be able to add features and work on supporting other browsers, but I work for myself so I can't always find the time. Consider buying me a beer, so that I can happily put more time into this project. Follow the link and click the PayPal donate button. Thank you! 11 | 12 | 13 | 14 | 15 | _.............._ 16 | ,' `. 17 | |`-==============-'| 18 | / \ 19 | \ _ _ _ _ _ _ / 20 | |,-' `-.| <-- Here's where I'd like my beer level to be. 21 | |`-._ _ _ _ _ _ .-'| 22 | | | 23 | | | 24 | | ____________ | 25 | |,-' `-.| <-- Here's where my beer level currently is. 26 | |`-.____________.-'| 27 | hjw |. ' : . : . | 28 | \ . : .: / 29 | `._:_____:____'_.' 30 | 31 | 32 | For more project information, code examples, and documentation visit: 33 | 34 | 35 | This code is currently available for use in all personal or commercial projects under both MIT and GPL licenses, just like jQuery. 36 | 37 | ## Change Log 38 | 39 | 2012.10.04 - v0.9.2: Mainly a fix for Firefox 16, but... $(el).transform() fetches style string for current transform, which in some browsers is a matrix() statement instead of a set of separate transform functions. This made it so I couldn't simply grep for skewY(). I was already tracking the current degrees of animation via $(el).data() anyway... so now I just return that rather than parsing from style string. In future would be good to actually support transforms already set on an element by other code/CSS. 40 | 41 | 2012.07.24 - v0.9.1: Firefox 14 / W3C transforms change... skew() replaced with skewY() 42 | 43 | 2010.11.26 - Added to GitHub, including updated dependencies to enabled IE9 (Platform Preview 7+) support 44 | 45 | 2009.03.11 - First release of project as rotate3Di v0.9 46 | 47 | -------------------------------------------------------------------------------- /js/out/assets/js/api-search.js: -------------------------------------------------------------------------------- 1 | YUI.add('api-search', function (Y) { 2 | 3 | var Lang = Y.Lang, 4 | Node = Y.Node, 5 | YArray = Y.Array; 6 | 7 | Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], { 8 | // -- Public Properties ---------------------------------------------------- 9 | RESULT_TEMPLATE: 10 | '
  • ' + 11 | '' + 12 | '

    {name}

    ' + 13 | '{resultType}' + 14 | '
    {description}
    ' + 15 | '{class}' + 16 | '
    ' + 17 | '
  • ', 18 | 19 | // -- Initializer ---------------------------------------------------------- 20 | initializer: function () { 21 | this._bindUIACBase(); 22 | this._syncUIACBase(); 23 | }, 24 | 25 | // -- Protected Methods ---------------------------------------------------- 26 | _apiResultFilter: function (query, results) { 27 | // Filter components out of the results. 28 | return YArray.filter(results, function (result) { 29 | return result.raw.resultType === 'component' ? false : result; 30 | }); 31 | }, 32 | 33 | _apiResultFormatter: function (query, results) { 34 | return YArray.map(results, function (result) { 35 | var raw = Y.merge(result.raw), // create a copy 36 | desc = raw.description || ''; 37 | 38 | // Convert description to text and truncate it if necessary. 39 | desc = Node.create('
    ' + desc + '
    ').get('text'); 40 | 41 | if (desc.length > 65) { 42 | desc = Y.Escape.html(desc.substr(0, 65)) + ' …'; 43 | } else { 44 | desc = Y.Escape.html(desc); 45 | } 46 | 47 | raw['class'] || (raw['class'] = ''); 48 | raw.description = desc; 49 | 50 | // Use the highlighted result name. 51 | raw.name = result.highlighted; 52 | 53 | return Lang.sub(this.RESULT_TEMPLATE, raw); 54 | }, this); 55 | }, 56 | 57 | _apiTextLocator: function (result) { 58 | return result.displayName || result.name; 59 | } 60 | }, { 61 | // -- Attributes ----------------------------------------------------------- 62 | ATTRS: { 63 | resultFormatter: { 64 | valueFn: function () { 65 | return this._apiResultFormatter; 66 | } 67 | }, 68 | 69 | resultFilters: { 70 | valueFn: function () { 71 | return this._apiResultFilter; 72 | } 73 | }, 74 | 75 | resultHighlighter: { 76 | value: 'phraseMatch' 77 | }, 78 | 79 | resultListLocator: { 80 | value: 'data.results' 81 | }, 82 | 83 | resultTextLocator: { 84 | valueFn: function () { 85 | return this._apiTextLocator; 86 | } 87 | }, 88 | 89 | source: { 90 | value: '/api/v1/search?q={query}&count={maxResults}' 91 | } 92 | } 93 | }); 94 | 95 | }, '3.4.0', {requires: [ 96 | 'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources', 97 | 'escape' 98 | ]}); 99 | -------------------------------------------------------------------------------- /plugins/assets/countdown/jquery.countdown.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @name jQuery Countdown Plugin 3 | * @author Martin Angelov 4 | * @version 1.0 5 | * @url http://tutorialzine.com/2011/12/countdown-jquery/ 6 | * @license MIT License 7 | */ 8 | 9 | (function($){ 10 | 11 | // Number of seconds in every time division 12 | var days = 24*60*60, 13 | hours = 60*60, 14 | minutes = 60; 15 | 16 | // Creating the plugin 17 | $.fn.countdown = function(prop){ 18 | 19 | var options = $.extend({ 20 | callback : function(){}, 21 | timestamp : 0, 22 | },prop), 23 | left, 24 | d, 25 | h, 26 | m, 27 | s, 28 | positions, 29 | appid = 'timer' + (options.id || $(this).selector.replace(/\W/g, ''));//获取id,没有的话区则选择符 30 | 31 | // This function updates two digit positions at once 32 | function updateDuo(minor,major,value){ 33 | switchDigit(positions.eq(minor),Math.floor(value/10)%10); 34 | switchDigit(positions.eq(major),value%10); 35 | } 36 | 37 | $.fn.countdown.list = $.fn.countdown.list || []; 38 | $.fn.countdown.list[appid] = $.fn.countdown.list[appid] || {}; 39 | //重置 40 | if(options.reset === true){ 41 | //没传入id 42 | $.fn.countdown.list[appid].run = false; 43 | $(this).empty();//清空 44 | }else{ 45 | // Initialize the plugin 46 | init($(this), options); 47 | $.fn.countdown.list[appid].run = true; 48 | positions = this.find('.position'); 49 | 50 | (function tick(){ 51 | 52 | // Time left 53 | left = Math.floor((options.timestamp - (new Date())) / 1000); 54 | 55 | if(left < 0){ 56 | left = 0; 57 | // Calling an optional user supplied callback 58 | options.callback(d, h, m, s); 59 | }else{ 60 | // Number of days left 61 | d = Math.floor(left / days); 62 | //updateDuo(0, 1, d); 63 | left -= d*days; 64 | 65 | // Number of hours left 66 | h = Math.floor(left / hours); 67 | //updateDuo(2, 3, h); 68 | left -= h*hours; 69 | 70 | // Number of minutes left 71 | m = Math.floor(left / minutes); 72 | updateDuo(0, 1, m); 73 | left -= m*minutes; 74 | 75 | // Number of seconds left 76 | s = left; 77 | updateDuo(2, 3, s); 78 | // Scheduling another call of this function in 1s 79 | if($.fn.countdown.list[appid].run){ 80 | setTimeout(tick, 1000); 81 | } 82 | } 83 | }()); 84 | } 85 | return this; 86 | }; 87 | 88 | 89 | function init(elem, options){ 90 | elem.addClass('countdownHolder'); 91 | 92 | // Creating the markup inside the container 93 | $.each(['Minutes','Seconds'],function(i){ 94 | $('').html( 95 | '' + 96 | '0' + 97 | '' + 98 | '' + 99 | '0' + 100 | '' 101 | ).appendTo(elem); 102 | 103 | if(this!="Seconds"){ 104 | elem.append(''); 105 | } 106 | }); 107 | 108 | 109 | } 110 | 111 | // Creates an animated transition between the two numbers 112 | function switchDigit(position,number){ 113 | 114 | var digit = position.find('.digit') 115 | 116 | if(digit.is(':animated')){ 117 | return false; 118 | } 119 | 120 | if(position.data('digit') == number){ 121 | // We are already showing this number 122 | return false; 123 | } 124 | 125 | position.data('digit', number); 126 | 127 | var replacement = $('',{ 128 | 'class':'digit', 129 | css:{ 130 | top:'-2.1em', 131 | opacity:0 132 | }, 133 | html:number 134 | }); 135 | 136 | // The .static class is added when the animation 137 | // completes. This makes it run smoother. 138 | 139 | digit 140 | .before(replacement) 141 | .removeClass('static') 142 | .animate({top:'2.5em',opacity:0},'fast',function(){ 143 | digit.remove(); 144 | }) 145 | 146 | replacement 147 | .delay(100) 148 | .animate({top:0,opacity:1},'fast',function(){ 149 | replacement.addClass('static'); 150 | }); 151 | } 152 | })(jQuery); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 颜海镜翻一下2.0beta版 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 | 23 |

    24 | Loading core module please wait a while... 25 |

    26 |
    27 |
    28 | 选择游戏难度 29 |
      30 |
    • 31 |
    • 32 |
    • 33 |
    • 34 |
    • 35 |
    • 36 |
    • 37 |
    • 38 |
    • 39 |
    • 40 |
    41 |
    42 |
    43 |

    Score

    44 |
      45 |
    • 46 | 难度: 1 47 |
    • 48 |
    • 49 | 消除: 5 对 50 |
    • 51 |
    • 52 | 点击: 5 次 53 |
    • 54 |
    • 55 | 点错: 5 次 56 |
    • 57 |
    • 58 | 总评分: 100 59 |
    • 60 |
    • 61 | 历史最高分: 0 62 |
    • 63 |
    • 64 | 65 |
    • 66 |
    67 | 68 | 69 |
    70 |
    71 |

    很遗憾失败了

    72 | 73 | 74 | 75 |
    76 |
    77 | 84 |
    85 |
    86 | 87 | 88 | 89 |
    90 |
    91 |
    92 |
    93 | 104 | 108 |
    109 |
    110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /plugins/rotate3Di-master/rotate3Di.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | // rotate3Di v0.9.2 3 | // https://github.com/zachstronaut/rotate3Di 4 | // 2012.10.04 - 2009.03.11 Zachary Johnson http://www.zachstronaut.com 5 | // "3D" isometric rotation and animation using CSS3 transformations 6 | // currently supported in Safari/Chrome/Webkit, Firefox 3.5+, IE 9+, 7 | // and Opera 11+. Tested with jQuery 1.3.x through 1.7.2. 8 | 9 | 10 | var calcRotate3Di = { 11 | direction: function (now) {return (now < 0 ? -1 : 1);}, 12 | degrees: function (now) {return (Math.floor(Math.abs(now))) % 360;}, 13 | scale: function (degrees) {return (1 - (degrees % 180) / 90) 14 | * (degrees >= 180 ? -1 : 1);} 15 | } 16 | 17 | // Custom animator 18 | $.fx.step.rotate3Di = function (fx) { 19 | direction = calcRotate3Di.direction(fx.now); 20 | degrees = calcRotate3Di.degrees(fx.now); 21 | scale = calcRotate3Di.scale(degrees); 22 | 23 | if (fx.options && typeof fx.options['sideChange'] != 'undefined') { 24 | if (fx.options['sideChange']) { 25 | var prevScale = $(fx.elem).data('rotate3Di.prevScale'); 26 | 27 | // negative scale means back side 28 | // positive scale means front side 29 | // if one is pos and one is neg then we have changed sides 30 | // (but one could actually be zero). 31 | if (scale * prevScale <= 0) { 32 | // if one was zero, deduce from the other which way we are 33 | // flipping: to the front (pos) or to the back (neg)? 34 | fx.options['sideChange'].call( 35 | fx.elem, 36 | (scale > 0 || prevScale < 0) 37 | ); 38 | // this was commented out to prevent calling it more than 39 | // once, but then that broke legitimate need to call it 40 | // more than once for rotations of 270+ degrees! 41 | //fx.options['sideChange'] = null; 42 | 43 | // this is my answer to commenting the above thing out... 44 | // if we just flipped sides, flip-flop the old previous 45 | // scale so that we can fire the sideChange event correctly 46 | // if we flip sides again. 47 | $(fx.elem).data( 48 | 'rotate3Di.prevScale', 49 | $(fx.elem).data('rotate3Di.prevScale') * -1 50 | ); 51 | } 52 | } 53 | 54 | // Making scale positive before setting it prevents flip-side 55 | // content from showing up mirrored/reversed. 56 | scale = Math.abs(scale); 57 | } 58 | 59 | // Since knowing the current degrees is important for detecting side 60 | // change, and since Firefox 3.0.x seems to not be able to reliably get 61 | // a value for css('transform') the first time after the page is loaded 62 | // with my flipbox demo... I am storing degrees someplace where I know 63 | // I can get them. 64 | $(fx.elem).data('rotate3Di.degrees', direction * degrees); 65 | $(fx.elem).css( 66 | 'transform', 67 | 'skewY(' + direction * degrees + 'deg)' 68 | + ' scale(' + scale + ', 1)' 69 | ); 70 | } 71 | 72 | // fx.cur() must be monkey patched because otherwise it would always 73 | // return 0 for current rotate3Di value 74 | var proxied = $.fx.prototype.cur; 75 | $.fx.prototype.cur = function () { 76 | if(this.prop == 'rotate3Di') { 77 | return $(this.elem).data('rotate3Di.degrees') || 0; 78 | } 79 | 80 | return proxied.apply(this, arguments); 81 | } 82 | 83 | $.fn.rotate3Di = function (degrees, duration, options) { 84 | if (typeof duration == 'undefined') { 85 | duration = 0; 86 | } 87 | 88 | if (typeof options == 'object') { 89 | $.extend(options, {duration: duration}); 90 | } else { 91 | options = {duration: duration}; 92 | } 93 | 94 | if (degrees == 'toggle') { 95 | // Yes, jQuery has the toggle() event but that's only good for 96 | // clicks, and likewise hover() is only good for mouse in/out. 97 | // What if you want to toggle based on a timer or something else? 98 | if ($(this).data('rotate3Di.flipped')) { 99 | degrees = 'unflip'; 100 | 101 | } else { 102 | degrees = 'flip'; 103 | } 104 | } 105 | 106 | if (degrees == 'flip') { 107 | $(this).data('rotate3Di.flipped', true); 108 | 109 | var direction = -1; 110 | if ( 111 | typeof options == 'object' 112 | && options['direction'] 113 | && options['direction'] == 'clockwise' 114 | ) { 115 | direction = 1; 116 | } 117 | 118 | degrees = direction * 180; 119 | 120 | } else if (degrees == 'unflip') { 121 | $(this).data('rotate3Di.flipped', false); 122 | 123 | degrees = 0; 124 | } 125 | 126 | var d = $(this).data('rotate3Di.degrees') || 0; 127 | $(this).data( 128 | 'rotate3Di.prevScale', 129 | calcRotate3Di.scale(calcRotate3Di.degrees(d)) 130 | ); 131 | $(this).animate({rotate3Di: degrees}, options); 132 | } 133 | })(jQuery); 134 | -------------------------------------------------------------------------------- /css/index.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8"; 2 | /** 3 | * index 页面的css 4 | */ 5 | html,body{ 6 | width:100%; 7 | height:100%; 8 | min-width:800px; 9 | min-height:600px; 10 | background:#1396ce; 11 | background:-webkit-gradient(linear,0% 0%, 0% 100%, from(#0037ac), to(#0037ac), color-stop(0.3, #5096f6), color-stop(0.5,#1396ce), color-stop(0.7, #5096f6)); 12 | background:-moz-linear-gradient(#0037ac, #5096f6 30%, #1396ce 50%, #5096f6 70%, #0037ac); 13 | background:linear-gradient(#0037ac, #5096f6 30%, #1396ce 50%, #5096f6 70%, #0037ac); 14 | } 15 | .share-qzone{ 16 | width:121px; 17 | height:26px; 18 | display: inline-block; 19 | background: url("../images/intro.gif") 20 | } 21 | /** 22 | * 载入区域 23 | * ====================== 24 | */ 25 | .loading{ 26 | position: absolute; 27 | z-index: 10000; 28 | width:100%; 29 | height:100%; 30 | background:#fff; 31 | text-align: center; 32 | font-size: 36px 33 | } 34 | .loading img{ 35 | margin:10% auto 0 36 | } 37 | .loading .progress{ 38 | margin: 10% auto 0; 39 | width: 60% 40 | } 41 | .loading p{ 42 | margin-top:50px 43 | } 44 | 45 | /** 46 | * 失败元素对象 47 | * ============================================== 48 | */ 49 | #failed{ 50 | text-align: center 51 | } 52 | #failed p{ 53 | color:#fff; 54 | font-size: 48px; 55 | text-align:center; 56 | padding: 150px 57 | } 58 | /** 59 | * 外边的包裹 60 | * ================================================ 61 | */ 62 | #wrap,#failed,#success,#home{ 63 | width:1020px; 64 | height:100%; 65 | margin:auto; 66 | background: -webkit-gradient(linear,0% 0%, 0% 100%, from(#9d5e70), to(#cd9191)); 67 | background:-moz-linear-gradient(#9d5e70,#cd9191); 68 | background:linear-gradient(#9d5e70, #cd9191); 69 | display:none; 70 | overflow:hidden; 71 | } 72 | /** 73 | * 胜利元素css 74 | * ============================================= 75 | */ 76 | #success{ 77 | background: url(../images/success-bg.gif); 78 | text-align: center 79 | } 80 | #success h1{ 81 | padding-top: 30px; 82 | color:#FFFFFF; 83 | font-size: 72px; 84 | font-weight: bolder; 85 | line-height: 1.5em; 86 | text-shadow: 3px 3px 20px #E7DFAE; 87 | } 88 | .try-again,.go-home{ 89 | border: 0; 90 | color:#2D1C08; 91 | font-size: 32px; 92 | line-height: 1.5em; 93 | padding:10px 20px; 94 | font-style: italic; 95 | background: #E7DFAE; 96 | border-radius: 10px; 97 | cursor: pointer; 98 | text-shadow: 3px 3px 20px #2D1C08; 99 | box-shadow: 0px 0px 20px #E7DFAE 100 | } 101 | #success ul{ 102 | margin-bottom:50px 103 | } 104 | #success ul li{ 105 | color: #FFFFFF; 106 | } 107 | #success ul li strong{ 108 | font-size: 32px; 109 | color: #E7DFAE 110 | } 111 | #share-qzone-success{ 112 | margin:20px 113 | } 114 | /** 115 | * home对象css 116 | * ================================= 117 | */ 118 | #home{ 119 | display:block; 120 | background:-webkit-gradient(linear,0% 0%, 0% 100%, from(#180002), to(#180002), color-stop(0.5, #aa5709)); 121 | background:-moz-linear-gradient(#180002, #aa5709 50%, #180002); 122 | background:linear-gradient(#180002, #aa5709 50%, #180002); 123 | color:#fff; 124 | font-size:40px; 125 | font-weight:bold; 126 | text-align:center 127 | } 128 | #home ul{ 129 | margin:100px 50px 130 | } 131 | #home li{ 132 | float:left; 133 | margin:30px 50px 134 | } 135 | #home button{ 136 | background:#c0eb78; 137 | width:80px; 138 | height:80px; 139 | border-radius:10px; 140 | color:#eeeaeb; 141 | font-size:36px; 142 | font-weight:bolder; 143 | -moz-box-shadow:0px 0px 20px #e2d1ec; 144 | -webkit-box-shadow:0px 0px 20px #e2d1ec; 145 | box-shadow:0px 0px 20px #e2d1ec; 146 | cursor:pointer; 147 | -webkit-text-stroke: 1.0px #000000; 148 | text-shadow:2px 2px 5px #333333; 149 | } 150 | #home button.click{ 151 | background:#c0eb00; 152 | } 153 | /** 154 | * #time-wrap 155 | * =============================================== 156 | */ 157 | #time-wrap{ 158 | float:left; 159 | width:250px 160 | } 161 | /** 162 | * 时间控件的css 163 | * ----------------------------- 164 | */ 165 | #time{ 166 | width:auto; 167 | margin: 100px 20px 0 20px; 168 | background:-webkit-gradient(linear,0% 0%, 0% 100%, from(#a9adb0), to(#a7abae), color-stop(0.5, #cbd0d3)); 169 | border:#e2d1ec 3px solid; 170 | border-radius:5px; 171 | padding:20px 0 0; 172 | -moz-box-shadow:0px 0px 20px #e2d1ec; 173 | -webkit-box-shadow:0px 0px 20px #e2d1ec; 174 | box-shadow:0px 0px 20px #e2d1ec; 175 | opacity:0.8 176 | } 177 | #time:hover{ 178 | opacity:1 179 | } 180 | /** 181 | * result css 182 | */ 183 | #result{ 184 | margin: 100px auto 0; 185 | text-align:center; 186 | opacity:0.6 187 | } 188 | #result:hover{ 189 | opacity:0.9 190 | } 191 | #result img{ 192 | } 193 | /** 194 | * 画布元素 195 | * ============================================== 196 | */ 197 | #canvas{ 198 | background:#3125af; 199 | padding:20px; 200 | -moz-box-shadow:0px 0px 20px #4a48eb; 201 | -webkit-box-shadow:0px 0px 20px #4a48eb; 202 | box-shadow:0px 0px 20px #4a48eb; 203 | border-radius: 5px; 204 | margin:10px 0; 205 | float:left; 206 | width:552px; 207 | height:552px; 208 | } 209 | #canvas img{ 210 | background:url(../images/background.gif); 211 | border-radius: 5px; 212 | width:65px; 213 | cursor: pointer 214 | } 215 | #canvas img.front{ 216 | background:#e2dcf8; 217 | } 218 | #canvas img[rel='']{ 219 | cursor:auto 220 | } 221 | #canvas table td{ 222 | padding:1px 2px; 223 | -moz-box-shadow:0px 0px 20px #3D30E2; -webkit-box-shadow:0px 0px 20px #3D30E2; box-shadow:0px 0px 20px #3D30E2; 224 | } 225 | /** 226 | * wall-warp css 227 | * ================================================== 228 | */ 229 | #wall-warp{ 230 | float:left; 231 | margin-left:20px 232 | } 233 | #score-panel{ 234 | width:135px; 235 | background:#495647; 236 | border:5px #c9b6cc solid; 237 | margin-top:50px; 238 | -moz-box-shadow:0px 0px 20px #e2d1ec; 239 | -webkit-box-shadow:0px 0px 20px #e2d1ec; 240 | box-shadow:0px 0px 20px #e2d1ec; 241 | border-radius:5px; 242 | color:#bdc3bd; 243 | font-weight:bold; 244 | font-size:24px; 245 | opacity:0.8 246 | } 247 | #score-panel:hover{ 248 | opacity:1 249 | } 250 | #score-panel table{ 251 | margin:auto; 252 | line-height:2em 253 | } 254 | #score-panel table tr{ 255 | margin:10px 0 256 | } 257 | #help{ 258 | margin-top:50px; 259 | } 260 | #help img{ 261 | display:block; 262 | opacity:0.6 263 | } 264 | #help img:hover{ 265 | opacity:0.9 266 | } 267 | #go-home{ 268 | background:url(../images/home-btn.png); 269 | border:0; 270 | height:65px; 271 | width:130px; 272 | margin-top:30px; 273 | cursor:pointer; 274 | opacity:0.6 275 | } 276 | #go-home:hover{ 277 | opacity:0.9 278 | } 279 | #wall-warp img{ 280 | width:120px 281 | } 282 | -------------------------------------------------------------------------------- /js/out/assets/vendor/prettify/CHANGES.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Change Log 5 | 6 | 7 | README 8 | 9 |

    Known Issues

    10 |
      11 |
    • Perl formatting is really crappy. Partly because the author is lazy and 12 | partly because Perl is 13 | hard to parse. 14 |
    • On some browsers, <code> elements with newlines in the text 15 | which use CSS to specify white-space:pre will have the newlines 16 | improperly stripped if the element is not attached to the document at the time 17 | the stripping is done. Also, on IE 6, all newlines will be stripped from 18 | <code> elements because of the way IE6 produces 19 | innerHTML. Workaround: use <pre> for code with 20 | newlines. 21 |
    22 | 23 |

    Change Log

    24 |

    29 March 2007

    25 |
      26 |
    • Added tests for PHP support 27 | to address 28 | issue 3. 30 |
    • Fixed 31 | bug: prettyPrintOne was not halting. This was not 33 | reachable through the normal entry point. 34 |
    • Fixed 35 | bug: recursing into a script block or PHP tag that was not properly 37 | closed would not silently drop the content. 38 | (test) 39 |
    • Fixed 40 | bug: was eating tabs 42 | (test) 43 |
    • Fixed entity handling so that the caveat 44 |
      45 |

      Caveats: please properly escape less-thans. x&lt;y 46 | instead of x<y, and use " instead of 47 | &quot; for string delimiters.

      48 |
      49 | is no longer applicable. 50 |
    • Added noisefree's C# 51 | patch 53 |
    • Added a distribution that has comments and 54 | whitespace removed to reduce download size from 45.5kB to 12.8kB. 55 |
    56 |

    4 Jul 2008

    57 |
      58 |
    • Added language specific formatters that are triggered by the presence 59 | of a lang-<language-file-extension>
    • 60 |
    • Fixed bug: python handling of '''string''' 61 |
    • Fixed bug: / in regex [charsets] should not end regex 62 |
    63 |

    5 Jul 2008

    64 |
      65 |
    • Defined language extensions for Lisp and Lua 66 |
    67 |

    14 Jul 2008

    68 |
      69 |
    • Language handlers for F#, OCAML, SQL 70 |
    • Support for nocode spans to allow embedding of line 71 | numbers and code annotations which should not be styled or otherwise 72 | affect the tokenization of prettified code. 73 | See the issue 22 74 | testcase. 75 |
    76 |

    6 Jan 2009

    77 |
      78 |
    • Language handlers for Visual Basic, Haskell, CSS, and WikiText
    • 79 |
    • Added .mxml extension to the markup style handler for 80 | Flex MXML files. See 81 | issue 37. 84 |
    • Added .m extension to the C style handler so that Objective 85 | C source files properly highlight. See 86 | issue 58. 89 |
    • Changed HTML lexer to use the same embedded source mechanism as the 90 | wiki language handler, and changed to use the registered 91 | CSS handler for STYLE element content. 92 |
    93 |

    21 May 2009

    94 |
      95 |
    • Rewrote to improve performance on large files. 96 | See benchmarks.
    • 97 |
    • Fixed bugs with highlighting of Haskell line comments, Lisp 98 | number literals, Lua strings, C preprocessor directives, 99 | newlines in Wiki code on Windows, and newlines in IE6.
    • 100 |
    101 |

    14 August 2009

    102 |
      103 |
    • Fixed prettifying of <code> blocks with embedded newlines. 104 |
    105 |

    3 October 2009

    106 |
      107 |
    • Fixed prettifying of XML/HTML tags that contain uppercase letters. 108 |
    109 |

    19 July 2010

    110 |
      111 |
    • Added support for line numbers. Bug 112 | 22
    • 114 |
    • Added YAML support. Bug 115 | 123
    • 117 |
    • Added VHDL support courtesy Le Poussin.
    • 118 |
    • IE performance improvements. Bug 119 | 102 courtesy jacobly.
    • 121 |
    • A variety of markup formatting fixes courtesy smain and thezbyg.
    • 122 |
    • Fixed copy and paste in IE[678]. 123 |
    • Changed output to use &#160; instead of 124 | &nbsp; so that the output works when embedded in XML. 125 | Bug 126 | 108.
    • 128 |
    129 | 130 | 131 | -------------------------------------------------------------------------------- /js/out/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |
    128 |
    129 |

    130 | Browse to a module or class using the sidebar to view its API documentation. 131 |

    132 | 133 |

    Keyboard Shortcuts

    134 | 135 |
      136 |
    • Press s to focus the API search box.

    • 137 | 138 |
    • Use Up and Down to select classes, modules, and search results.

    • 139 | 140 |
    • With the API search box or sidebar focused, use -Left or -Right to switch sidebar tabs.

    • 141 | 142 |
    • With the API search box or sidebar focused, use Ctrl+Left and Ctrl+Right to switch sidebar tabs.

    • 143 |
    144 |
    145 |
    146 | 147 | 148 | 149 |
    150 |
    151 |
    152 |
    153 |
    154 |
    155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /js/out/modules/imagesModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | imagesModel 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    imagesModel Module

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: model\imagesModel.js:77 136 |
    137 | 138 | 139 | 140 |
    141 | 142 | 143 | 144 |
    145 |

    图片组对象

    146 |
    147 | 148 | 149 | 150 |
    151 |
    152 | 153 |

    This module provides the following classes:

    154 | 155 | 170 | 171 |
    172 | 173 |
    174 | 175 |
    176 |
    177 | 178 |
    179 |
    180 |
    181 |
    182 |
    183 |
    184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /js/out/modules/storageModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | storageModel 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    storageModel Module

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: model\storageModel.js:27 136 |
    137 | 138 | 139 | 140 |
    141 | 142 | 143 | 144 |
    145 |

    本地存储类

    146 |
    147 | 148 | 149 | 150 |
    151 |
    152 | 153 |

    This module provides the following classes:

    154 | 155 | 170 | 171 |
    172 | 173 |
    174 | 175 |
    176 |
    177 | 178 |
    179 |
    180 |
    181 |
    182 |
    183 |
    184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /js/out/assets/js/api-list.js: -------------------------------------------------------------------------------- 1 | YUI.add('api-list', function (Y) { 2 | 3 | var Lang = Y.Lang, 4 | YArray = Y.Array, 5 | 6 | APIList = Y.namespace('APIList'), 7 | 8 | classesNode = Y.one('#api-classes'), 9 | inputNode = Y.one('#api-filter'), 10 | modulesNode = Y.one('#api-modules'), 11 | tabviewNode = Y.one('#api-tabview'), 12 | 13 | tabs = APIList.tabs = {}, 14 | 15 | filter = APIList.filter = new Y.APIFilter({ 16 | inputNode : inputNode, 17 | maxResults: 1000, 18 | 19 | on: { 20 | results: onFilterResults 21 | } 22 | }), 23 | 24 | search = APIList.search = new Y.APISearch({ 25 | inputNode : inputNode, 26 | maxResults: 100, 27 | 28 | on: { 29 | clear : onSearchClear, 30 | results: onSearchResults 31 | } 32 | }), 33 | 34 | tabview = APIList.tabview = new Y.TabView({ 35 | srcNode : tabviewNode, 36 | panelNode: '#api-tabview-panel', 37 | render : true, 38 | 39 | on: { 40 | selectionChange: onTabSelectionChange 41 | } 42 | }), 43 | 44 | focusManager = APIList.focusManager = tabviewNode.plug(Y.Plugin.NodeFocusManager, { 45 | circular : true, 46 | descendants: '#api-filter, .yui3-tab-panel-selected .api-list-item a, .yui3-tab-panel-selected .result a', 47 | keys : {next: 'down:40', previous: 'down:38'} 48 | }).focusManager, 49 | 50 | LIST_ITEM_TEMPLATE = 51 | '
  • ' + 52 | '{displayName}' + 53 | '
  • '; 54 | 55 | // -- Init --------------------------------------------------------------------- 56 | 57 | // Duckpunch FocusManager's key event handling to prevent it from handling key 58 | // events when a modifier is pressed. 59 | Y.before(function (e, activeDescendant) { 60 | if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { 61 | return new Y.Do.Prevent(); 62 | } 63 | }, focusManager, '_focusPrevious', focusManager); 64 | 65 | Y.before(function (e, activeDescendant) { 66 | if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { 67 | return new Y.Do.Prevent(); 68 | } 69 | }, focusManager, '_focusNext', focusManager); 70 | 71 | // Create a mapping of tabs in the tabview so we can refer to them easily later. 72 | tabview.each(function (tab, index) { 73 | var name = tab.get('label').toLowerCase(); 74 | 75 | tabs[name] = { 76 | index: index, 77 | name : name, 78 | tab : tab 79 | }; 80 | }); 81 | 82 | // Switch tabs on Ctrl/Cmd-Left/Right arrows. 83 | tabviewNode.on('key', onTabSwitchKey, 'down:37,39'); 84 | 85 | // Focus the filter input when the `/` key is pressed. 86 | Y.one(Y.config.doc).on('key', onSearchKey, 'down:83'); 87 | 88 | // Keep the Focus Manager up to date. 89 | inputNode.on('focus', function () { 90 | focusManager.set('activeDescendant', inputNode); 91 | }); 92 | 93 | // Update all tabview links to resolved URLs. 94 | tabview.get('panelNode').all('a').each(function (link) { 95 | link.setAttribute('href', link.get('href')); 96 | }); 97 | 98 | // -- Private Functions -------------------------------------------------------- 99 | function getFilterResultNode() { 100 | return filter.get('queryType') === 'classes' ? classesNode : modulesNode; 101 | } 102 | 103 | // -- Event Handlers ----------------------------------------------------------- 104 | function onFilterResults(e) { 105 | var frag = Y.one(Y.config.doc.createDocumentFragment()), 106 | resultNode = getFilterResultNode(), 107 | typePlural = filter.get('queryType'), 108 | typeSingular = typePlural === 'classes' ? 'class' : 'module'; 109 | 110 | if (e.results.length) { 111 | YArray.each(e.results, function (result) { 112 | frag.append(Lang.sub(LIST_ITEM_TEMPLATE, { 113 | rootPath : APIList.rootPath, 114 | displayName : filter.getDisplayName(result.highlighted), 115 | name : result.text, 116 | typePlural : typePlural, 117 | typeSingular: typeSingular 118 | })); 119 | }); 120 | } else { 121 | frag.append( 122 | '
  • ' + 123 | 'No ' + typePlural + ' found.' + 124 | '
  • ' 125 | ); 126 | } 127 | 128 | resultNode.empty(true); 129 | resultNode.append(frag); 130 | 131 | focusManager.refresh(); 132 | } 133 | 134 | function onSearchClear(e) { 135 | 136 | focusManager.refresh(); 137 | } 138 | 139 | function onSearchKey(e) { 140 | var target = e.target; 141 | 142 | if (target.test('input,select,textarea') 143 | || target.get('isContentEditable')) { 144 | return; 145 | } 146 | 147 | e.preventDefault(); 148 | 149 | inputNode.focus(); 150 | focusManager.refresh(); 151 | } 152 | 153 | function onSearchResults(e) { 154 | var frag = Y.one(Y.config.doc.createDocumentFragment()); 155 | 156 | if (e.results.length) { 157 | YArray.each(e.results, function (result) { 158 | frag.append(result.display); 159 | }); 160 | } else { 161 | frag.append( 162 | '
  • ' + 163 | 'No results found. Maybe you\'ll have better luck with a ' + 164 | 'different query?' + 165 | '
  • ' 166 | ); 167 | } 168 | 169 | 170 | focusManager.refresh(); 171 | } 172 | 173 | function onTabSelectionChange(e) { 174 | var tab = e.newVal, 175 | name = tab.get('label').toLowerCase(); 176 | 177 | tabs.selected = { 178 | index: tab.get('index'), 179 | name : name, 180 | tab : tab 181 | }; 182 | 183 | switch (name) { 184 | case 'classes': // fallthru 185 | case 'modules': 186 | filter.setAttrs({ 187 | minQueryLength: 0, 188 | queryType : name 189 | }); 190 | 191 | search.set('minQueryLength', -1); 192 | 193 | // Only send a request if this isn't the initially-selected tab. 194 | if (e.prevVal) { 195 | filter.sendRequest(filter.get('value')); 196 | } 197 | break; 198 | 199 | case 'everything': 200 | filter.set('minQueryLength', -1); 201 | search.set('minQueryLength', 1); 202 | 203 | if (search.get('value')) { 204 | search.sendRequest(search.get('value')); 205 | } else { 206 | inputNode.focus(); 207 | } 208 | break; 209 | 210 | default: 211 | // WTF? We shouldn't be here! 212 | filter.set('minQueryLength', -1); 213 | search.set('minQueryLength', -1); 214 | } 215 | 216 | if (focusManager) { 217 | setTimeout(function () { 218 | focusManager.refresh(); 219 | }, 1); 220 | } 221 | } 222 | 223 | function onTabSwitchKey(e) { 224 | var currentTabIndex = tabs.selected.index; 225 | 226 | if (!(e.ctrlKey || e.metaKey)) { 227 | return; 228 | } 229 | 230 | e.preventDefault(); 231 | 232 | switch (e.keyCode) { 233 | case 37: // left arrow 234 | if (currentTabIndex > 0) { 235 | tabview.selectChild(currentTabIndex - 1); 236 | inputNode.focus(); 237 | } 238 | break; 239 | 240 | case 39: // right arrow 241 | if (currentTabIndex < (Y.Object.size(tabs) - 2)) { 242 | tabview.selectChild(currentTabIndex + 1); 243 | inputNode.focus(); 244 | } 245 | break; 246 | } 247 | } 248 | 249 | }, '3.4.0', {requires: [ 250 | 'api-filter', 'api-search', 'event-key', 'node-focusmanager', 'tabview' 251 | ]}); 252 | -------------------------------------------------------------------------------- /js/out/modules/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    index Module

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: index.js:248 136 |
    137 | 138 | 139 | 140 |
    141 | 142 | 143 | 144 |
    145 |

    Index js主页js

    146 |
    147 | 148 | 149 | 150 |
    151 |
    152 | 153 |

    This module provides the following classes:

    154 | 155 | 194 | 195 |
    196 | 197 |
    198 | 199 |
    200 |
    201 | 202 |
    203 |
    204 |
    205 |
    206 |
    207 |
    208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /js/model/imagesModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 图片组对象 3 | * 4 | * @module imagesModel 5 | * @namespace fan1xia.model 6 | * @main imagesModel 7 | * @author 颜海镜 8 | * @version 2012-09-29 15:20:04 9 | */ 10 | (function($, window){ 11 | 'use strict'; 12 | 13 | /** 14 | * 图片类类 15 | * @class Images 16 | * @constructor 17 | * @extends fan1xia.model.Images.prototype 18 | */ 19 | var Images = function(){ 20 | /** 21 | * 图片名称数组 22 | * @property images 23 | * @type Array 24 | * @default [...] 25 | */ 26 | this.images = ['Alien1.bmp', 27 | 'Alien2.bmp', 28 | 'Balloon.bmp', 29 | 'Bear.bmp', 30 | 'Beaver.bmp', 31 | 'BirthdayCake.bmp', 32 | 'ChocolateCake.bmp', 33 | 'DaVinci.bmp', 34 | 'Dragon.bmp', 35 | 'Earth.bmp', 36 | 'Fireworks1.bmp', 37 | 'Fireworks2.bmp', 38 | 'Fish.bmp', 39 | 'Frog1.bmp', 40 | 'Frog2.bmp', 41 | 'Hand.bmp', 42 | 'Hitchcock.bmp', 43 | 'Leaf.bmp', 44 | 'Monkey1.bmp', 45 | 'Monkey2.bmp', 46 | 'Moon.bmp', 47 | 'Owl.bmp', 48 | 'PartyHat.bmp', 49 | 'Penguin.bmp', 50 | 'Rabbit.bmp', 51 | 'Rose.bmp', 52 | 'Sun.bmp', 53 | 'Women.bmp', 54 | 'get.gif', 55 | 'panda.gif', 56 | 'elephant.gif', 57 | 'haitun.gif' 58 | ]; 59 | 60 | /** 61 | * 图片路径数组 62 | * @property imagesSrc 63 | * @type Array 64 | * @default [] 65 | */ 66 | this.imagesSrc = []; 67 | 68 | /** 69 | * 图片对象数组 70 | * @property imgs 71 | * @type Array 72 | * @default [] 73 | */ 74 | this.imgs = []; 75 | }; 76 | 77 | /** 78 | * Images构造函数的原型对象 79 | * @class Images.prototype 80 | * @static 81 | */ 82 | Images.prototype = { 83 | /** 84 | * 初始化 85 | * @method init 86 | */ 87 | init:function(){ 88 | this.initImagesSrc();//初始化路径 89 | this.loadImages(this.getImagesSrc()); 90 | }, 91 | /** 92 | * 初始化图象的路径 93 | * @method initImagesSrc 94 | * @return {Array} imgSrc 初始化完的图片路径数组 95 | */ 96 | initImagesSrc:function(){ 97 | var 98 | imgSrc = [], 99 | i = 0, 100 | images = this.images, 101 | len = images.length; 102 | 103 | for(i; i < len; i = i + 1){ 104 | imgSrc[i] = './images/' + images[i]; 105 | } 106 | 107 | $.extend(true, this.imagesSrc, imgSrc);//扩展自身属性 108 | return imgSrc; 109 | }, 110 | 111 | /** 112 | * 获取图片路径数组 113 | * @method getImagesSrc 114 | * @return {Array} 图片路径数组 115 | */ 116 | getImagesSrc:function(){ 117 | return $.extend(true, [], this.imagesSrc); 118 | }, 119 | 120 | /** 121 | * 载入图片对象 122 | * @method loadImages 123 | * @param {Array} imgSrcs 图片路径数组 124 | * @return {Array} imgs 图片对象 125 | */ 126 | loadImages:function(imgSrcs){ 127 | var 128 | imgs = [], 129 | i = 0, 130 | len = imgSrcs.length; 131 | 132 | for(i; i < len; i = i + 1){ 133 | imgs[i] = new Image(); 134 | imgs[i].src = imgSrcs[i]; 135 | } 136 | 137 | $.extend(true, this.imgs, imgs);//扩展自身属性 138 | return imgs; 139 | }, 140 | 141 | /** 142 | * 获取图片对象数组 143 | * @method getImageObjs 144 | * @return {Array} 图片对象数组 145 | */ 146 | getImageObjs:function(){ 147 | return $.extend(true, [], this.imgs); 148 | }, 149 | 150 | /* 151 | * 创建图片dom节点 152 | * @method createImagesDom 153 | * @param {Array} images 图象的数组 154 | * @return {Array} imgsDom 图象的dom节点数组 155 | */ 156 | createImagesDom:function(images){ 157 | var 158 | imgsDom = [], 159 | i = 0, 160 | len = images.length, 161 | _$ = $; 162 | 163 | for(i; i < len; i = i + 1){ 164 | imgsDom[i] = _$(''); 165 | } 166 | 167 | return imgsDom; 168 | }, 169 | 170 | /** 171 | * 随即生成函数 172 | * @method randowmImages 173 | * @param {Number} num 生成的数量 174 | * @param {Array} imagesDom 图片dom数组 175 | * @return {Array} images 生成的数组 176 | */ 177 | randomImages:function(num, imagesDom){ 178 | var i = 0, 179 | randomNext = function(){}, 180 | random = Math.random, 181 | results = [], 182 | imgSrcs = [], 183 | imageObjs = [], 184 | imageDoms = [], 185 | temps = [], 186 | len = imagesDom.length; 187 | 188 | //深拷贝 189 | for(i=0; i'); 237 | results.push(temp[i*grad + j]); 238 | } 239 | } 240 | 241 | return results; 242 | }, 243 | 244 | /* 245 | * 初始化数组dom对象 246 | * @method initImages 247 | * @param {num} count 总数 248 | * @param {num} grad 有多少个元素相同 249 | * @return {Array} results 生成随机的数组 250 | */ 251 | initImages:function(count, grad){ 252 | var results = [], 253 | imgSrcs = [], 254 | imageObjs = [], 255 | imageDoms = [], 256 | num = count / grad, 257 | expendDoms = [], 258 | randomDoms = []; 259 | 260 | //初始化src对象 261 | imgSrcs = this.initImagesSrc(); 262 | //载入image对象 263 | imageObjs = this.loadImages(imgSrcs); 264 | //创建doms对象 265 | imageDoms = this.createImagesDom(imageObjs); 266 | 267 | //随机取图象 268 | randomDoms = this.randomImages(num, imageDoms); 269 | //扩展图象 270 | 271 | expendDoms = this.expendImages(randomDoms, grad); 272 | 273 | //随机排列图象 274 | expendDoms = this.randomImages(expendDoms.length, expendDoms); 275 | 276 | return expendDoms; 277 | }, 278 | 279 | /** 280 | * 获取随机获取的图像dom对象数组 281 | * @method getImageObjs 282 | * @return {Array} 随机获取的图像dom对象数组 283 | */ 284 | getImages:function(count, grad){ 285 | var 286 | results = [], 287 | imageObjs = [], 288 | imageDoms = [], 289 | num = count / grad, 290 | expendDoms = [], 291 | randomDoms = []; 292 | //载入image对象 293 | imageObjs = this.getImageObjs(); 294 | //创建doms对象 295 | imageDoms = this.createImagesDom(imageObjs); 296 | 297 | //随机取图象 298 | randomDoms = this.randomImages(num, imageDoms); 299 | //扩展图象 300 | 301 | expendDoms = this.expendImages(randomDoms, grad); 302 | 303 | //随机排列图象 304 | expendDoms = this.randomImages(expendDoms.length, expendDoms); 305 | 306 | return expendDoms; 307 | } 308 | }; 309 | 310 | window.fan1xia = window.fan1xia || {}; 311 | window.fan1xia.model = window.fan1xia.model || {}; 312 | window.fan1xia.model.Images = Images; 313 | }(jQuery, window)); 314 | -------------------------------------------------------------------------------- /js/out/assets/vendor/prettify/README.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Javascript code prettifier 7 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | Languages : CH 20 |

    Javascript code prettifier

    21 | 22 |

    Setup

    23 |
      24 |
    1. Download a distribution 25 |
    2. Include the script and stylesheets in your document 26 | (you will need to make sure the css and js file are on your server, and 27 | adjust the paths in the script and link tag) 28 |
       29 | <link href="prettify.css" type="text/css" rel="stylesheet" />
       30 | <script type="text/javascript" src="prettify.js"></script>
      31 |
    3. Add onload="prettyPrint()" to your 32 | document's body tag. 33 |
    4. Modify the stylesheet to get the coloring you prefer
    5. 34 |
    35 | 36 |

    Usage

    37 |

    Put code snippets in 38 | <pre class="prettyprint">...</pre> 39 | or <code class="prettyprint">...</code> 40 | and it will automatically be pretty printed. 41 | 42 | 43 | 44 | 47 |
    The original 45 | Prettier 46 |
    class Voila {
     49 | public:
     50 |   // Voila
     51 |   static const string VOILA = "Voila";
     52 | 
     53 |   // will not interfere with embedded tags.
     54 | }
    55 | 56 |
    class Voila {
     57 | public:
     58 |   // Voila
     59 |   static const string VOILA = "Voila";
     60 | 
     61 |   // will not interfere with embedded tags.
     62 | }
    63 |
    64 | 65 |

    FAQ

    66 |

    Which languages does it work for?

    67 |

    The comments in prettify.js are authoritative but the lexer 68 | should work on a number of languages including C and friends, 69 | Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles. 70 | It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl 71 | and Ruby, but, because of commenting conventions, doesn't work on 72 | Smalltalk, or CAML-like languages.

    73 | 74 |

    LISPy languages are supported via an extension: 75 | lang-lisp.js.

    77 |

    And similarly for 78 | CSS, 80 | Haskell, 82 | Lua, 84 | OCAML, SML, F#, 86 | Visual Basic, 88 | SQL, 90 | Protocol Buffers, and 92 | WikiText.. 94 | 95 |

    If you'd like to add an extension for your favorite language, please 96 | look at src/lang-lisp.js and file an 97 | issue including your language extension, and a testcase.

    99 | 100 |

    How do I specify which language my code is in?

    101 |

    You don't need to specify the language since prettyprint() 102 | will guess. You can specify a language by specifying the language extension 103 | along with the prettyprint class like so:

    104 |
    <pre class="prettyprint lang-html">
    106 |   The lang-* class specifies the language file extensions.
    107 |   File extensions supported by default include
    108 |     "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html",
    109 |     "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh",
    110 |     "xhtml", "xml", "xsl".
    111 | </pre>
    112 | 113 |

    It doesn't work on <obfuscated code sample>?

    114 |

    Yes. Prettifying obfuscated code is like putting lipstick on a pig 115 | — i.e. outside the scope of this tool.

    116 | 117 |

    Which browsers does it work with?

    118 |

    It's been tested with IE 6, Firefox 1.5 & 2, and Safari 2.0.4. 119 | Look at the test page to see if it 120 | works in your browser.

    121 | 122 |

    What's changed?

    123 |

    See the change log

    124 | 125 |

    Why doesn't Prettyprinting of strings work on WordPress?

    126 |

    Apparently wordpress does "smart quoting" which changes close quotes. 127 | This causes end quotes to not match up with open quotes. 128 |

    This breaks prettifying as well as copying and pasting of code samples. 129 | See 130 | WordPress's help center for info on how to stop smart quoting of code 132 | snippets.

    133 | 134 |

    How do I put line numbers in my code?

    135 |

    You can use the linenums class to turn on line 136 | numbering. If your code doesn't start at line number 1, you can 137 | add a colon and a line number to the end of that class as in 138 | linenums:52. 139 | 140 |

    For example 141 |

    <pre class="prettyprint linenums:4"
    142 | >// This is line 4.
    143 | foo();
    144 | bar();
    145 | baz();
    146 | boo();
    147 | far();
    148 | faz();
    149 | <pre>
    150 | produces 151 |
    // This is line 4.
    153 | foo();
    154 | bar();
    155 | baz();
    156 | boo();
    157 | far();
    158 | faz();
    159 | 
    160 | 161 |

    How do I prevent a portion of markup from being marked as code?

    162 |

    You can use the nocode class to identify a span of markup 163 | that is not code. 164 |

    <pre class=prettyprint>
    165 | int x = foo();  /* This is a comment  <span class="nocode">This is not code</span>
    166 |   Continuation of comment */
    167 | int y = bar();
    168 | </pre>
    169 | produces 170 |
    171 | int x = foo();  /* This is a comment  This is not code
    172 |   Continuation of comment */
    173 | int y = bar();
    174 | 
    175 | 176 |

    For a more complete example see the issue22 177 | testcase.

    178 | 179 |

    I get an error message "a is not a function" or "opt_whenDone is not a function"

    180 |

    If you are calling prettyPrint via an event handler, wrap it in a function. 181 | Instead of doing 182 |

    183 | addEventListener('load', prettyPrint, false); 185 |
    186 | wrap it in a closure like 187 |
    188 | addEventListener('load', function (event) { prettyPrint() }, false); 190 |
    191 | so that the browser does not pass an event object to prettyPrint which 192 | will confuse it. 193 | 194 |


    195 | 196 | 202 | 203 | 204 | -------------------------------------------------------------------------------- /js/out/modules/CanvasModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | canvasModel 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    canvasModel Module

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: model\canvasModel.js:420 136 |
    137 | 138 | 139 | 140 |
    141 | 142 | 143 | 144 |
    145 |

    画布对象

    146 |
    147 | 148 | 149 | 150 |
    151 |
    152 | 153 |

    This module provides the following classes:

    154 | 155 | 206 | 207 |
    208 | 209 |
    210 | 211 |
    212 |
    213 | 214 |
    215 |
    216 |
    217 |
    218 |
    219 |
    220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | -------------------------------------------------------------------------------- /js/out/files/model_storageModel.js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model\storageModel.js 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    File: model\storageModel.js

    128 | 129 |
    130 |
    131 | /**
    132 |  * 本地存储类
    133 |  * @author yan
    134 |  * @module storageModel
    135 |  * @main storageModel
    136 |  * @namespace fan1xia.model
    137 |  */
    138 | (function($, global){
    139 |     "use strict";
    140 |     
    141 |     /**
    142 |     * 本地存储类
    143 |     * @class StorageModel
    144 |     * @constructor
    145 |     * @extends fan1xia.model.StorageModel.prototype
    146 |     */
    147 |     var StorageModel = function(){
    148 |         /**
    149 |          * 浏览器寸处对象
    150 |          * @property storage
    151 |          * @type Object
    152 |          * @default null
    153 |          */
    154 |         this.storage = null;    
    155 |     };
    156 |     
    157 |     /**
    158 |     * 本地存储类原型对象
    159 |     * @class StorageModel.prototype
    160 |     * @static
    161 |     */    
    162 |     StorageModel.prototype = {
    163 |         /**
    164 |          * 初始化
    165 |          * @method init 
    166 |          */
    167 |         init:function(){
    168 |             function getLocalStorage(){
    169 |                 var result = false;
    170 |                 if(typeof global.localStorage === 'object'){
    171 |                     result = localStorage;
    172 |                 }else if(typeof global.globalStorage === 'object'){
    173 |                     result = global.globalStorage;
    174 |                 }
    175 |                 
    176 |                 return result;
    177 |             }
    178 |             
    179 |             this.storage = getLocalStorage();
    180 |         },
    181 |         
    182 |         /**
    183 |          * 获取本地存储对象
    184 |          * @method getStorage
    185 |          * @return {Object} 本地存储对象
    186 |          */
    187 |         getStorage:function(){
    188 |             return this.storage;
    189 |         },
    190 |         
    191 |         /**
    192 |          * 存储对象
    193 |          * @method save
    194 |          * @param {String} key 存的键
    195 |          * @param {String} value 要存的值
    196 |          * @return {Bollean} 存储是否成功
    197 |          */
    198 |         save:function(key, value){
    199 |             var
    200 |                 storage = this.storage,
    201 |                 list = false;
    202 |             if(storage !== false){
    203 |                 list = storage.setItem(key, value);
    204 |             }
    205 |             return list;
    206 |         },
    207 |         
    208 |         /**
    209 |          * 载入值
    210 |          * @method getStorage
    211 |          * @param {String} key 要去得的键
    212 |          * @return {Bollean|String} 获取成功返回兼职,失败返回false
    213 |          */
    214 |         load:function(key){
    215 |             var
    216 |                 storage = this.storage,
    217 |                 result = false;
    218 |             if(storage !== false){                
    219 |                 result = storage.getItem(key);
    220 |             }
    221 |             
    222 |             return result;
    223 |         }
    224 |     };
    225 |     
    226 |     global.fan1xia = global.fan1xia || {};
    227 |     global.fan1xia.model = global.fan1xia.model || {};
    228 |     global.fan1xia.model.StorageModel = StorageModel;
    229 | }(jQuery, window));
    230 | 
    231 |     
    232 |
    233 | 234 |
    235 |
    236 |
    237 |
    238 |
    239 |
    240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | -------------------------------------------------------------------------------- /js/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Index js主页js 3 | * 4 | * @module index 5 | * @main index 6 | * @namespace fan1xia 7 | * @author 颜海镜 8 | * @version 2012-09-29 15:20:04 9 | */ 10 | (function($, window){ 11 | 'use strict'; 12 | var Index, 13 | Success, 14 | Failed; 15 | /** 16 | * 主页类 17 | * @class Index 18 | * @constructor 19 | * @extends fan1xia.Index.prototype 20 | */ 21 | Index = function(){ 22 | /** 23 | * 级别属性存储当前级别与系统级别的索引 24 | * @property levels 25 | * @type Array 26 | * @default [] 27 | */ 28 | this.levels = []; 29 | }; 30 | 31 | /** 32 | * Index构造函数的原型对象 33 | * @class Index.prototype 34 | * @static 35 | */ 36 | Index.prototype = { 37 | /** 38 | * 初始化 39 | * @method init 40 | */ 41 | init:function(){ 42 | var canvas = new window.fan1xia.model.Canvas(), 43 | success = new Success(), 44 | failed = new Failed(); 45 | 46 | window.fan1xia.canvas = canvas;//更新画布 47 | this.bindClickEvent();//初始化点击事件 48 | canvas.init(); 49 | 50 | success.init(); 51 | failed.init(); 52 | window.fan1xia.levels = [{level:2, grad:2}, 53 | {level:4, grad:4}, 54 | {level:4, grad:2}, 55 | {level:6, grad:6}, 56 | {level:6, grad:4}, 57 | {level:6, grad:2}, 58 | {level:8, grad:16}, 59 | {level:8, grad:8}, 60 | {level:8, grad:4}, 61 | {level:8, grad:2} 62 | ]; 63 | }, 64 | /** 65 | * 绑定点击事件 66 | * @event bindClickEvent 67 | */ 68 | bindClickEvent:function(){ 69 | var that = this; 70 | //绑定开始界面的事件 71 | $('#home').delegate('button', 'click', function(e){ 72 | var 73 | level = parseInt($(this).html(), 10) - 1, 74 | canvas = window.fan1xia.canvas, 75 | callback = function(){}, 76 | levels = []; 77 | 78 | levels = window.fan1xia.levels; 79 | //添加点击效果 80 | window.fan1xia.currentLevel = level; 81 | $(this).addClass('click'); 82 | //刷新完成回调函数 83 | callback = function(){ 84 | //刷新画布 85 | canvas.refresh(levels[level].level, levels[level].grad); 86 | }; 87 | //旋转出元素 88 | $('#home').rotate3Di(90, 500, {complete:function(){ 89 | $(this).hide(0, function(){ 90 | $('#wrap').show(0, function(){ 91 | $(this).rotate3Di(-90); 92 | $('#wrap').rotate3Di(0, 1000, {complete:function(){callback();}}); 93 | }); 94 | }); 95 | }}); 96 | }); 97 | } 98 | }; 99 | 100 | /** 101 | * 成功类 102 | * @class Success 103 | * @constructor 104 | * @extends fan1xia.Success.prototype 105 | */ 106 | Success = function(){ 107 | }; 108 | 109 | /** 110 | * 成功类原型 111 | * @class Success.prototype 112 | * @static 113 | */ 114 | Success.prototype = { 115 | /** 116 | * 初始化 117 | * @method init 118 | */ 119 | init:function(){ 120 | this.bindClickEvent(); 121 | }, 122 | 123 | /** 124 | * 胜利处理结果 125 | * @method success 126 | */ 127 | success:function(){ 128 | var 129 | canvas = window.fan1xia.canvas, 130 | score = canvas.score, 131 | total = score.totalPairs, 132 | error = score.errorCount, 133 | click = score.clickCount, 134 | scoreNum = parseInt(2*total*100/click, 10), 135 | $success = $('#success'), 136 | $pair = $("#pair strong", $success), 137 | $click = $("#click strong", $success), 138 | $error = $("#error strong", $success), 139 | $score = $("#score strong", $success), 140 | $hightScore = $("#hight-score strong", $success), 141 | $level = $("#level strong", $success), 142 | level = window.fan1xia.currentLevel, 143 | storage = new window.fan1xia.model.StorageModel(), 144 | key = "fan1xiaHightScoreLevel" + level, 145 | hightScore; 146 | 147 | storage.init();//初始化存储 148 | hightScore = storage.load(key) || 0; 149 | 150 | if(scoreNum >= hightScore){ 151 | storage.save(key, scoreNum); 152 | } 153 | $pair.html(total); 154 | $click.html(click); 155 | $error.html(error); 156 | $score.html(scoreNum); 157 | $hightScore.html(hightScore); 158 | $level.html(level + 1); 159 | 160 | //添加QQ分享 161 | (function(){ 162 | var p = { 163 | url:location.href, /*获取URL,可加上来自分享到QQ标识,方便统计*/ 164 | desc:'哈哈!!!我在难度' + level+1 + '中,得了' + scoreNum + '分,您是否能找到板上所有的匹配?翻转一块墙砖会显示一张图片,然后尝试在其他地方找到其匹配。记住图片的位置,因为如果翻转的墙砖上的图片不匹配,您将必须重试。匹配所有图片才能获胜。', /*分享理由(风格应模拟用户对话),支持多分享语随机展现(使用|分隔)*/ 165 | title:'翻一下', /*分享标题(可选)*/ 166 | summary:'翻一下是一款类似小丑配对的游戏,能增加记忆力', /*分享摘要(可选)*/ 167 | pics:'http://yanhaijing.github.io/fan1xia/images/fan.gif', /*分享图片(可选)*/ 168 | site:'https://github.com/yanhaijing', /*分享来源(可选) 如:QQ分享*/ 169 | style:'101', 170 | width:96, 171 | height:24 172 | }; 173 | var s = []; 174 | for(var i in p){ 175 | s.push(i + '=' + encodeURIComponent(p[i]||'')); 176 | } 177 | $("#share-qzone-success").attr("href", "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?" + s.join('&')); 178 | })(); 179 | 180 | //旋转出元素 181 | $('#wrap').rotate3Di(-90, 500, {complete:function(){ 182 | $(this).hide(0, function(){ 183 | $success.show(0, function(){ 184 | $(this).rotate3Di(90); 185 | $success.rotate3Di(0, 1000, {complete:function(){}}); 186 | }); 187 | }); 188 | }}); 189 | }, 190 | 191 | /** 192 | * 绑定点击事件 193 | * @event bindClickEvent 194 | */ 195 | bindClickEvent:function(){ 196 | //绑定再试一次事件 197 | var $success = $('#success'); 198 | //绑定返回home事件 199 | $success.delegate('.go-home', 'click', function(e){ 200 | //旋转出元素 201 | $('#success').rotate3Di(90, 500, {complete:function(){ 202 | $(this).hide(0, function(){ 203 | $('#home').show(0, function(){ 204 | $(this).rotate3Di(-90); 205 | $('#home').rotate3Di(0, 1000, {complete:function(){}}); 206 | }); 207 | }); 208 | }}); 209 | }); 210 | 211 | //绑定再试一次事件 212 | $success.delegate('.try-again', 'click', function(e){ 213 | var 214 | level = window.fan1xia.currentLevel, 215 | canvas = window.fan1xia.canvas, 216 | callback = function(){}, 217 | levels = []; 218 | 219 | levels = window.fan1xia.levels; 220 | //刷新完成回调函数 221 | callback = function(){ 222 | //刷新画布 223 | canvas.refresh(levels[level].level, levels[level].grad); 224 | }; 225 | //旋转出元素 226 | $('#success').rotate3Di(90, 500, {complete:function(){ 227 | $(this).hide(0, function(){ 228 | $('#wrap').show(0, function(){ 229 | $(this).rotate3Di(-90); 230 | $('#wrap').rotate3Di(0, 1000, {complete:function(){callback();}}); 231 | }); 232 | }); 233 | }}); 234 | }); 235 | } 236 | }; 237 | 238 | /** 239 | * 失败类 240 | * @class Failed 241 | * @constructor 242 | * @extends fan1xia.Failed.prototype 243 | */ 244 | Failed = function(){ 245 | }; 246 | 247 | /** 248 | * 失败类原型 249 | * @class Failed.prototype 250 | * @static 251 | */ 252 | Failed.prototype = { 253 | /** 254 | * 初始化 255 | * @method init 256 | */ 257 | init:function(){ 258 | this.bindClickEvent(); 259 | }, 260 | 261 | /** 262 | * 失败处理结果 263 | * @method fail 264 | */ 265 | fail:function(){ 266 | //旋转出元素 267 | $('#wrap').rotate3Di(-90, 500, {complete:function(){ 268 | $(this).hide(0, function(){ 269 | $('#failed').show(0, function(){ 270 | $(this).rotate3Di(90); 271 | $('#failed').rotate3Di(0, 1000, {complete:function(){}}); 272 | }); 273 | }); 274 | }}); 275 | }, 276 | 277 | /** 278 | * 绑定点击事件 279 | * @event bindClickEvent 280 | */ 281 | bindClickEvent:function(){ 282 | //绑定再试一次事件 283 | var $failed = $('#failed'); 284 | //绑定返回home事件 285 | $failed.delegate('.go-home', 'click', function(e){ 286 | //旋转出元素 287 | $('#failed').rotate3Di(90, 500, {complete:function(){ 288 | $(this).hide(0, function(){ 289 | $('#home').show(0, function(){ 290 | $(this).rotate3Di(-90); 291 | $('#home').rotate3Di(0, 1000, {complete:function(){}}); 292 | }); 293 | }); 294 | }}); 295 | }); 296 | 297 | //绑定再试一次事件 298 | $failed.delegate('.try-again', 'click', function(e){ 299 | var 300 | level = window.fan1xia.currentLevel, 301 | canvas = window.fan1xia.canvas, 302 | callback = function(){}, 303 | levels = window.fan1xia.levels; 304 | 305 | //刷新完成回调函数 306 | callback = function(){ 307 | //刷新画布 308 | canvas.refresh(levels[level].level, levels[level].grad); 309 | }; 310 | //旋转出元素 311 | $('#failed').rotate3Di(90, 500, {complete:function(){ 312 | $(this).hide(0, function(){ 313 | $('#wrap').show(0, function(){ 314 | $(this).rotate3Di(-90); 315 | $('#wrap').rotate3Di(0, 1000, {complete:function(){callback();}}); 316 | }); 317 | }); 318 | }}); 319 | }); 320 | } 321 | }; 322 | 323 | window.fan1xia = window.fan1xia || {}; 324 | window.fan1xia.Failed = Failed; 325 | window.fan1xia.Success = Success; 326 | $(function(){ 327 | var index = new Index(); 328 | index.init(); 329 | }) 330 | }(jQuery, window)); 331 | -------------------------------------------------------------------------------- /js/out/classes/fan1xia.Index.prototype.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fan1xia.Index.prototype 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    fan1xia.Index.prototype Class

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: index.js:32 136 |
    137 | 138 | 139 | 140 | 141 | Module: index 142 | 143 | 144 | 145 | 146 |
    147 | 148 | 149 | 150 |
    151 |

    Index构造函数的原型对象

    152 |
    153 | 154 | 155 | 156 |
    157 | 169 | 170 |
    171 |
    172 |

    Item Index

    173 | 174 | 175 |
    176 |

    Methods

    177 | 178 |
      179 | 180 |
    • 181 | init 182 | 183 | 184 | 185 |
    • 186 | 187 |
    188 |
    189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 |
    197 |

    Events

    198 | 199 |
      200 | 201 |
    • 202 | bindClickEvent 203 | 204 | 205 | 206 |
    • 207 | 208 |
    209 |
    210 | 211 |
    212 | 213 | 214 |
    215 |

    Methods

    216 | 217 | 218 |
    219 |

    init

    220 | 221 | 222 | () 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 |
    240 | 241 | 242 | 243 |

    244 | 245 | Defined in 246 | 247 | 248 | 249 | 250 | index.js:38 251 | 252 |

    253 | 254 | 255 | 256 | 257 | 258 |
    259 | 260 |
    261 |

    初始化

    262 |
    263 | 264 | 265 | 266 | 267 | 268 | 269 |
    270 | 271 | 272 |
    273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 |
    281 |

    Events

    282 | 283 | 284 |
    285 |

    bindClickEvent

    286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 |
    297 | 298 | 299 | 300 |

    301 | 302 | Defined in 303 | 304 | 305 | 306 | 307 | index.js:65 308 | 309 |

    310 | 311 | 312 | 313 | 314 |
    315 | 316 |
    317 |

    绑定点击事件

    318 |
    319 | 320 | 321 | 322 | 323 | 324 |
    325 | 326 | 327 |
    328 | 329 |
    330 |
    331 | 332 |
    333 |
    334 |
    335 |
    336 |
    337 |
    338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | -------------------------------------------------------------------------------- /js/out/classes/fan1xia.Failed.prototype.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fan1xia.Failed.prototype 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    fan1xia.Failed.prototype Class

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: index.js:248 136 |
    137 | 138 | 139 | 140 | 141 | Module: index 142 | 143 | 144 | 145 | 146 |
    147 | 148 | 149 | 150 |
    151 |

    失败类原型

    152 |
    153 | 154 | 155 | 156 |
    157 | 169 | 170 |
    171 |
    172 |

    Item Index

    173 | 174 | 175 |
    176 |

    Methods

    177 | 178 |
      179 | 180 |
    • 181 | fail 182 | 183 | 184 | 185 |
    • 186 | 187 |
    • 188 | init 189 | 190 | 191 | 192 |
    • 193 | 194 |
    195 |
    196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 |
    204 |

    Events

    205 | 206 |
      207 | 208 |
    • 209 | bindClickEvent 210 | 211 | 212 | 213 |
    • 214 | 215 |
    216 |
    217 | 218 |
    219 | 220 | 221 |
    222 |

    Methods

    223 | 224 | 225 |
    226 |

    fail

    227 | 228 | 229 | () 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 |
    247 | 248 | 249 | 250 |

    251 | 252 | Defined in 253 | 254 | 255 | 256 | 257 | index.js:262 258 | 259 |

    260 | 261 | 262 | 263 | 264 | 265 |
    266 | 267 |
    268 |

    失败处理结果

    269 |
    270 | 271 | 272 | 273 | 274 | 275 | 276 |
    277 | 278 | 279 |
    280 |

    init

    281 | 282 | 283 | () 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 |
    301 | 302 | 303 | 304 |

    305 | 306 | Defined in 307 | 308 | 309 | 310 | 311 | index.js:254 312 | 313 |

    314 | 315 | 316 | 317 | 318 | 319 |
    320 | 321 |
    322 |

    初始化

    323 |
    324 | 325 | 326 | 327 | 328 | 329 | 330 |
    331 | 332 | 333 |
    334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 |
    342 |

    Events

    343 | 344 | 345 |
    346 |

    bindClickEvent

    347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 |
    358 | 359 | 360 | 361 |

    362 | 363 | Defined in 364 | 365 | 366 | 367 | 368 | index.js:278 369 | 370 |

    371 | 372 | 373 | 374 | 375 |
    376 | 377 |
    378 |

    绑定点击事件

    379 |
    380 | 381 | 382 | 383 | 384 | 385 |
    386 | 387 | 388 |
    389 | 390 |
    391 |
    392 | 393 |
    394 |
    395 |
    396 |
    397 |
    398 |
    399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | -------------------------------------------------------------------------------- /js/out/classes/fan1xia.Success.prototype.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fan1xia.Success.prototype 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    fan1xia.Success.prototype Class

    128 |
    129 | 130 | 131 | 132 | 133 | 134 |
    135 | Defined in: index.js:110 136 |
    137 | 138 | 139 | 140 | 141 | Module: index 142 | 143 | 144 | 145 | 146 |
    147 | 148 | 149 | 150 |
    151 |

    成功类原型

    152 |
    153 | 154 | 155 | 156 |
    157 | 169 | 170 |
    171 |
    172 |

    Item Index

    173 | 174 | 175 |
    176 |

    Methods

    177 | 178 |
      179 | 180 |
    • 181 | init 182 | 183 | 184 | 185 |
    • 186 | 187 |
    • 188 | success 189 | 190 | 191 | 192 |
    • 193 | 194 |
    195 |
    196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 |
    204 |

    Events

    205 | 206 |
      207 | 208 |
    • 209 | bindClickEvent 210 | 211 | 212 | 213 |
    • 214 | 215 |
    216 |
    217 | 218 |
    219 | 220 | 221 |
    222 |

    Methods

    223 | 224 | 225 |
    226 |

    init

    227 | 228 | 229 | () 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 |
    247 | 248 | 249 | 250 |

    251 | 252 | Defined in 253 | 254 | 255 | 256 | 257 | index.js:116 258 | 259 |

    260 | 261 | 262 | 263 | 264 | 265 |
    266 | 267 |
    268 |

    初始化

    269 |
    270 | 271 | 272 | 273 | 274 | 275 | 276 |
    277 | 278 | 279 |
    280 |

    success

    281 | 282 | 283 | () 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 |
    301 | 302 | 303 | 304 |

    305 | 306 | Defined in 307 | 308 | 309 | 310 | 311 | index.js:124 312 | 313 |

    314 | 315 | 316 | 317 | 318 | 319 |
    320 | 321 |
    322 |

    胜利处理结果

    323 |
    324 | 325 | 326 | 327 | 328 | 329 | 330 |
    331 | 332 | 333 |
    334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 |
    342 |

    Events

    343 | 344 | 345 |
    346 |

    bindClickEvent

    347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 |
    358 | 359 | 360 | 361 |

    362 | 363 | Defined in 364 | 365 | 366 | 367 | 368 | index.js:192 369 | 370 |

    371 | 372 | 373 | 374 | 375 |
    376 | 377 |
    378 |

    绑定点击事件

    379 |
    380 | 381 | 382 | 383 | 384 | 385 |
    386 | 387 | 388 |
    389 | 390 |
    391 |
    392 | 393 |
    394 |
    395 |
    396 |
    397 |
    398 |
    399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | -------------------------------------------------------------------------------- /js/out/assets/js/apidocs.js: -------------------------------------------------------------------------------- 1 | YUI().use( 2 | 'yuidoc-meta', 3 | 'api-list', 'history-hash', 'node-screen', 'node-style', 'pjax', 4 | function (Y) { 5 | 6 | var win = Y.config.win, 7 | localStorage = win.localStorage, 8 | 9 | bdNode = Y.one('#bd'), 10 | 11 | pjax, 12 | defaultRoute, 13 | 14 | classTabView, 15 | selectedTab; 16 | 17 | // Kill pjax functionality unless serving over HTTP. 18 | if (!Y.getLocation().protocol.match(/^https?\:/)) { 19 | Y.Router.html5 = false; 20 | } 21 | 22 | // Create the default route with middleware which enables syntax highlighting 23 | // on the loaded content. 24 | defaultRoute = Y.Pjax.defaultRoute.concat(function (req, res, next) { 25 | prettyPrint(); 26 | bdNode.removeClass('loading'); 27 | 28 | next(); 29 | }); 30 | 31 | pjax = new Y.Pjax({ 32 | container : '#docs-main', 33 | contentSelector: '#docs-main > .content', 34 | linkSelector : '#bd a', 35 | titleSelector : '#xhr-title', 36 | 37 | navigateOnHash: true, 38 | root : '/', 39 | routes : [ 40 | // -- / ---------------------------------------------------------------- 41 | { 42 | path : '/(index.html)?', 43 | callbacks: defaultRoute 44 | }, 45 | 46 | // -- /classes/* ------------------------------------------------------- 47 | { 48 | path : '/classes/:class.html*', 49 | callbacks: [defaultRoute, 'handleClasses'] 50 | }, 51 | 52 | // -- /files/* --------------------------------------------------------- 53 | { 54 | path : '/files/*file', 55 | callbacks: [defaultRoute, 'handleFiles'] 56 | }, 57 | 58 | // -- /modules/* ------------------------------------------------------- 59 | { 60 | path : '/modules/:module.html*', 61 | callbacks: defaultRoute 62 | } 63 | ] 64 | }); 65 | 66 | // -- Utility Functions -------------------------------------------------------- 67 | 68 | pjax.checkVisibility = function (tab) { 69 | tab || (tab = selectedTab); 70 | 71 | if (!tab) { return; } 72 | 73 | var panelNode = tab.get('panelNode'), 74 | visibleItems; 75 | 76 | // If no items are visible in the tab panel due to the current visibility 77 | // settings, display a message to that effect. 78 | visibleItems = panelNode.all('.item,.index-item').some(function (itemNode) { 79 | if (itemNode.getComputedStyle('display') !== 'none') { 80 | return true; 81 | } 82 | }); 83 | 84 | panelNode.all('.no-visible-items').remove(); 85 | 86 | if (!visibleItems) { 87 | if (Y.one('#index .index-item')) { 88 | panelNode.append( 89 | '
    ' + 90 | '

    ' + 91 | 'Some items are not shown due to the current visibility ' + 92 | 'settings. Use the checkboxes at the upper right of this ' + 93 | 'page to change the visibility settings.' + 94 | '

    ' + 95 | '
    ' 96 | ); 97 | } else { 98 | panelNode.append( 99 | '
    ' + 100 | '

    ' + 101 | 'This class doesn\'t provide any methods, properties, ' + 102 | 'attributes, or events.' + 103 | '

    ' + 104 | '
    ' 105 | ); 106 | } 107 | } 108 | 109 | // Hide index sections without any visible items. 110 | Y.all('.index-section').each(function (section) { 111 | var items = 0, 112 | visibleItems = 0; 113 | 114 | section.all('.index-item').each(function (itemNode) { 115 | items += 1; 116 | 117 | if (itemNode.getComputedStyle('display') !== 'none') { 118 | visibleItems += 1; 119 | } 120 | }); 121 | 122 | section.toggleClass('hidden', !visibleItems); 123 | section.toggleClass('no-columns', visibleItems < 4); 124 | }); 125 | }; 126 | 127 | pjax.initClassTabView = function () { 128 | if (!Y.all('#classdocs .api-class-tab').size()) { 129 | return; 130 | } 131 | 132 | if (classTabView) { 133 | classTabView.destroy(); 134 | selectedTab = null; 135 | } 136 | 137 | classTabView = new Y.TabView({ 138 | srcNode: '#classdocs', 139 | 140 | on: { 141 | selectionChange: pjax.onTabSelectionChange 142 | } 143 | }); 144 | 145 | pjax.updateTabState(); 146 | classTabView.render(); 147 | }; 148 | 149 | pjax.initLineNumbers = function () { 150 | var hash = win.location.hash.substring(1), 151 | container = pjax.get('container'), 152 | hasLines, node; 153 | 154 | // Add ids for each line number in the file source view. 155 | container.all('.linenums>li').each(function (lineNode, index) { 156 | lineNode.set('id', 'l' + (index + 1)); 157 | lineNode.addClass('file-line'); 158 | hasLines = true; 159 | }); 160 | 161 | // Scroll to the desired line. 162 | if (hasLines && /^l\d+$/.test(hash)) { 163 | if ((node = container.getById(hash))) { 164 | win.scroll(0, node.getY()); 165 | } 166 | } 167 | }; 168 | 169 | pjax.initRoot = function () { 170 | var terminators = /^(?:classes|files|modules)$/, 171 | parts = pjax._getPathRoot().split('/'), 172 | root = [], 173 | i, len, part; 174 | 175 | for (i = 0, len = parts.length; i < len; i += 1) { 176 | part = parts[i]; 177 | 178 | if (part.match(terminators)) { 179 | // Makes sure the path will end with a "/". 180 | root.push(''); 181 | break; 182 | } 183 | 184 | root.push(part); 185 | } 186 | 187 | pjax.set('root', root.join('/')); 188 | }; 189 | 190 | pjax.updateTabState = function (src) { 191 | var hash = win.location.hash.substring(1), 192 | defaultTab, node, tab, tabPanel; 193 | 194 | function scrollToNode() { 195 | if (node.hasClass('protected')) { 196 | Y.one('#api-show-protected').set('checked', true); 197 | pjax.updateVisibility(); 198 | } 199 | 200 | if (node.hasClass('private')) { 201 | Y.one('#api-show-private').set('checked', true); 202 | pjax.updateVisibility(); 203 | } 204 | 205 | setTimeout(function () { 206 | // For some reason, unless we re-get the node instance here, 207 | // getY() always returns 0. 208 | var node = Y.one('#classdocs').getById(hash); 209 | win.scrollTo(0, node.getY() - 70); 210 | }, 1); 211 | } 212 | 213 | if (!classTabView) { 214 | return; 215 | } 216 | 217 | if (src === 'hashchange' && !hash) { 218 | defaultTab = 'index'; 219 | } else { 220 | if (localStorage) { 221 | defaultTab = localStorage.getItem('tab_' + pjax.getPath()) || 222 | 'index'; 223 | } else { 224 | defaultTab = 'index'; 225 | } 226 | } 227 | 228 | if (hash && (node = Y.one('#classdocs').getById(hash))) { 229 | if ((tabPanel = node.ancestor('.api-class-tabpanel', true))) { 230 | if ((tab = Y.one('#classdocs .api-class-tab.' + tabPanel.get('id')))) { 231 | if (classTabView.get('rendered')) { 232 | Y.Widget.getByNode(tab).set('selected', 1); 233 | } else { 234 | tab.addClass('yui3-tab-selected'); 235 | } 236 | } 237 | } 238 | 239 | // Scroll to the desired element if this is a hash URL. 240 | if (node) { 241 | if (classTabView.get('rendered')) { 242 | scrollToNode(); 243 | } else { 244 | classTabView.once('renderedChange', scrollToNode); 245 | } 246 | } 247 | } else { 248 | tab = Y.one('#classdocs .api-class-tab.' + defaultTab); 249 | 250 | // When the `defaultTab` node isn't found, `localStorage` is stale. 251 | if (!tab && defaultTab !== 'index') { 252 | tab = Y.one('#classdocs .api-class-tab.index'); 253 | } 254 | 255 | if (classTabView.get('rendered')) { 256 | Y.Widget.getByNode(tab).set('selected', 1); 257 | } else { 258 | tab.addClass('yui3-tab-selected'); 259 | } 260 | } 261 | }; 262 | 263 | pjax.updateVisibility = function () { 264 | var container = pjax.get('container'); 265 | 266 | container.toggleClass('hide-inherited', 267 | !Y.one('#api-show-inherited').get('checked')); 268 | 269 | container.toggleClass('show-deprecated', 270 | Y.one('#api-show-deprecated').get('checked')); 271 | 272 | container.toggleClass('show-protected', 273 | Y.one('#api-show-protected').get('checked')); 274 | 275 | container.toggleClass('show-private', 276 | Y.one('#api-show-private').get('checked')); 277 | 278 | pjax.checkVisibility(); 279 | }; 280 | 281 | // -- Route Handlers ----------------------------------------------------------- 282 | 283 | pjax.handleClasses = function (req, res, next) { 284 | var status = res.ioResponse.status; 285 | 286 | // Handles success and local filesystem XHRs. 287 | if (!status || (status >= 200 && status < 300)) { 288 | pjax.initClassTabView(); 289 | } 290 | 291 | next(); 292 | }; 293 | 294 | pjax.handleFiles = function (req, res, next) { 295 | var status = res.ioResponse.status; 296 | 297 | // Handles success and local filesystem XHRs. 298 | if (!status || (status >= 200 && status < 300)) { 299 | pjax.initLineNumbers(); 300 | } 301 | 302 | next(); 303 | }; 304 | 305 | // -- Event Handlers ----------------------------------------------------------- 306 | 307 | pjax.onNavigate = function (e) { 308 | var hash = e.hash, 309 | originTarget = e.originEvent && e.originEvent.target, 310 | tab; 311 | 312 | if (hash) { 313 | tab = originTarget && originTarget.ancestor('.yui3-tab', true); 314 | 315 | if (hash === win.location.hash) { 316 | pjax.updateTabState('hashchange'); 317 | } else if (!tab) { 318 | win.location.hash = hash; 319 | } 320 | 321 | e.preventDefault(); 322 | return; 323 | } 324 | 325 | // Only scroll to the top of the page when the URL doesn't have a hash. 326 | this.set('scrollToTop', !e.url.match(/#.+$/)); 327 | 328 | bdNode.addClass('loading'); 329 | }; 330 | 331 | pjax.onOptionClick = function (e) { 332 | pjax.updateVisibility(); 333 | }; 334 | 335 | pjax.onTabSelectionChange = function (e) { 336 | var tab = e.newVal, 337 | tabId = tab.get('contentBox').getAttribute('href').substring(1); 338 | 339 | selectedTab = tab; 340 | 341 | // If switching from a previous tab (i.e., this is not the default tab), 342 | // replace the history entry with a hash URL that will cause this tab to 343 | // be selected if the user navigates away and then returns using the back 344 | // or forward buttons. 345 | if (e.prevVal && localStorage) { 346 | localStorage.setItem('tab_' + pjax.getPath(), tabId); 347 | } 348 | 349 | pjax.checkVisibility(tab); 350 | }; 351 | 352 | // -- Init --------------------------------------------------------------------- 353 | 354 | pjax.on('navigate', pjax.onNavigate); 355 | 356 | pjax.initRoot(); 357 | pjax.upgrade(); 358 | pjax.initClassTabView(); 359 | pjax.initLineNumbers(); 360 | pjax.updateVisibility(); 361 | 362 | Y.APIList.rootPath = pjax.get('root'); 363 | 364 | Y.one('#api-options').delegate('click', pjax.onOptionClick, 'input'); 365 | 366 | Y.on('hashchange', function (e) { 367 | pjax.updateTabState('hashchange'); 368 | }, win); 369 | 370 | }); 371 | -------------------------------------------------------------------------------- /js/out/assets/vendor/prettify/COPYING: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /js/out/classes/fan1xia.Failed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fan1xia.Failed 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 |
    16 |
    17 | 18 |

    19 | 20 |
    21 |
    22 | API Docs for: 23 |
    24 |
    25 |
    26 | 27 |
    28 | 98 |
    99 |
    100 |
    101 | Show: 102 | 106 | 107 | 111 | 112 | 116 | 120 | 121 |
    122 | 123 | 124 |
    125 |
    126 |
    127 |

    fan1xia.Failed Class

    128 |
    129 | 130 | 131 | 132 |
    133 | Extends fan1xia.Failed.prototype 134 |
    135 | 136 | 137 | 138 |
    139 | Defined in: index.js:239 140 |
    141 | 142 | 143 | 144 | 145 | Module: index 146 | 147 | 148 | 149 | 150 |
    151 | 152 | 153 | 154 |
    155 |

    失败类

    156 |
    157 | 158 | 159 |
    160 |

    Constructor

    161 |
    162 |

    fan1xia.Failed

    163 | 164 | 165 | () 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 |
    183 | 184 | 185 | 186 |

    187 | 188 | Defined in 189 | 190 | 191 | 192 | 193 | index.js:239 194 | 195 |

    196 | 197 | 198 | 199 | 200 | 201 |
    202 | 203 |
    204 | 205 |
    206 | 207 | 208 | 209 | 210 | 211 | 212 |
    213 | 214 |
    215 | 216 | 217 |
    218 | 230 | 231 |
    232 |
    233 |

    Item Index

    234 | 235 | 236 |
    237 |

    Methods

    238 | 239 |
      240 | 241 |
    • 242 | fail 243 | 244 | 245 | 246 |
    • 247 | 248 |
    • 249 | init 250 | 251 | 252 | 253 |
    • 254 | 255 |
    256 |
    257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 |
    265 |

    Events

    266 | 267 |
      268 | 269 |
    • 270 | bindClickEvent 271 | 272 | 273 | 274 |
    • 275 | 276 |
    277 |
    278 | 279 |
    280 | 281 | 282 |
    283 |

    Methods

    284 | 285 | 286 |
    287 |

    fail

    288 | 289 | 290 | () 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 |
    308 | 309 | 310 |

    Inherited from 311 | fan1xia.Failed.prototype: 312 | 313 | 314 | 315 | index.js:262 316 | 317 |

    318 | 319 | 320 | 321 | 322 | 323 |
    324 | 325 |
    326 |

    失败处理结果

    327 |
    328 | 329 | 330 | 331 | 332 | 333 | 334 |
    335 | 336 | 337 |
    338 |

    init

    339 | 340 | 341 | () 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 |
    359 | 360 | 361 |

    Inherited from 362 | fan1xia.Failed.prototype: 363 | 364 | 365 | 366 | index.js:254 367 | 368 |

    369 | 370 | 371 | 372 | 373 | 374 |
    375 | 376 |
    377 |

    初始化

    378 |
    379 | 380 | 381 | 382 | 383 | 384 | 385 |
    386 | 387 | 388 |
    389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 |
    397 |

    Events

    398 | 399 | 400 |
    401 |

    bindClickEvent

    402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 |
    413 | 414 | 415 |

    Inherited from 416 | fan1xia.Failed.prototype: 417 | 418 | 419 | 420 | index.js:278 421 | 422 |

    423 | 424 | 425 | 426 | 427 |
    428 | 429 |
    430 |

    绑定点击事件

    431 |
    432 | 433 | 434 | 435 | 436 | 437 |
    438 | 439 | 440 |
    441 | 442 |
    443 |
    444 | 445 |
    446 |
    447 |
    448 |
    449 |
    450 |
    451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | --------------------------------------------------------------------------------