diff --git a/README.md b/README.md index b68f549..3f6c969 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,17 @@ HTML5, WebGame etc... ### demo [デモページ](http://webcyou.com/message_view_js/demo/) +### Install + +#### Bower +``` +bower install message_view.js +``` + +#### npm +``` +npm install message-view-js +``` ### The Basics diff --git a/bower.json b/bower.json index 80db6b7..77ee274 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "message_view", "version": "1.0.2", + "main": "dist/message_view.js", "authors": [ "daisuke.takayama" ], "license": "MIT", - "private": true, "ignore": [ "**/.*", "node_modules", diff --git a/dist/message_view.js b/dist/message_view.js index 845eca4..7daa3ba 100644 --- a/dist/message_view.js +++ b/dist/message_view.js @@ -188,7 +188,8 @@ speed: 'normal', ignoreSkip: false, loop: false, - isPointer: true + isPointer: true, + isClose: true }; this.addTime = 30; this.loading = false; @@ -339,7 +340,9 @@ this.open(this.data); } else { this.end(); - this.close(); + if (this.option.isClose) { + this.close(); + } } } }, @@ -455,4 +458,4 @@ global.MessageViewer = {}; } global.MessageViewer = Message; -})(this); \ No newline at end of file +})(this); diff --git a/dist/message_view.min.js b/dist/message_view.min.js index 5045f57..b37fc47 100644 --- a/dist/message_view.min.js +++ b/dist/message_view.min.js @@ -1 +1 @@ -"use strict";!function(t){function e(t,e,i){this.utility=i,this.view=s.querySelector(e.view),this.contents=s.querySelector(e.contents),this.character=s.querySelector(e.character),this.characterImg=s.querySelector(e.characterImg),this.messageView=s.querySelector(e.messageView),this.message=s.querySelector(e.message),this.name=s.querySelector(e.name),this.pointer=s.querySelector(e.pointer),this.MESSAGE_VIEW_CLASS=this.view.className,this.MESSAGE_CLOSE_CLASS=e.messageCloseClass,this.MESSAGE_OPEN_CLASS=e.messageOpenClass,this.CHARACTER_CLASS=this.character.className,this.MESSAGE_CLASS=this.message.className,this.init.apply(this,arguments)}function i(t,e){var i=this,a=t.option;if(this.option={view:".messageView#default",contents:".messageView#default .mv-contents",character:".messageView#default .mv-contents .mv-image.character",characterImg:".messageView#default .mv-contents .mv-image.character img",messageView:".messageView#default .mv-contents .mv-comment",message:".messageView#default .mv-contents .mv-comment .val",name:".messageView#default .mv-contents .mv-name",pointer:".messageView#default .mv-contents .mv-comment .pointer",messageOpenClass:"in",messageCloseClass:"hide",page:0,speed:"normal",ignoreSkip:!1,loop:!1,isPointer:!0},this.addTime=30,this.loading=!1,this.isNumber=function(t){return"number"!=typeof t&&"string"!=typeof t?!1:t==parseFloat(t)&&isFinite(t)},void 0!==a){for(var o in a)this.option[o]=a[o];switch(this.option.speed){case"normal":i.addTime=30;break;case"fast":i.addTime=10;break;case"slow":i.addTime=80;break;default:i.addTime=30}this.isNumber(this.option.speed)&&(i.addTime=Math.abs(Math.round(this.option.speed)))}void 0!==t&&(this.data=t.data,this.selectedNum=this.option.page,this.selectedData=t.data[0],this.maxNum=t.data.length),this.set=function(t){for(var e in t)this.option[e]=t[e];return this},this.messageView=s.querySelector(this.option.view),this.onClick=function(t){t.stopPropagation(),t.preventDefault(),i.next.call(i)},this.utility=new n(this.option),this.messageView.addEventListener(this.utility.vendor.defultEvent,i.onClick,!0),void 0!==t.data&&this.init.apply(this,[t.data]),this.callBack=function(){void 0!==e&&e()},this.skip=!1}var s=t.document,n=function(){function t(t){this.support={touch:"ontouchstart"in window},this.vendor={defultEvent:"click",transitionend:this.whichTransitionEvent(),animationend:this.whichAnimationEvent()},this.support.touch&&(this.vendor.defultEvent="touchend")}return t.prototype.whichAnimationEvent=function(){var t,e=s.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]},t.prototype.whichTransitionEvent=function(){var t,e=s.createElement("fakeelement"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in i)if(void 0!==e.style[t])return i[t]},t}();e.prototype={init:function(){},isSet:function(t){return void 0!==t&&void 0!==t?!0:!1},open:function(){this.view.classList.contains(this.MESSAGE_CLOSE_CLASS)&&this.view.classList.remove(this.MESSAGE_CLOSE_CLASS)},close:function(){this.view.classList.add(this.MESSAGE_CLOSE_CLASS),this.message.classList.add(this.MESSAGE_OPEN_CLASS),this.character.classList.add(this.MESSAGE_OPEN_CLASS)},commentChange:function(t){this.message.innerHTML="",this.message.innerHTML=t,this.messageView.classList.remove(this.MESSAGE_OPEN_CLASS)},commentClear:function(){this.message.innerHTML=""},characterChange:function(t){var e=this;t&&t.img_url?(this.characterImg.src=t.img_url,setTimeout(function(){e.character.className=e.CHARACTER_CLASS,e.character.addEventListener(e.utility.vendor.transitionend,function t(){e.messageView.className=e.MESSAGE_CLASS,this.removeEventListener(e.utility.vendor.transitionend,t,!1)})},80)):e.character.className=e.CHARACTER_CLASS},nameChange:function(t){this.name.innerHTML=t.name},sideChange:function(t){this.isSet(t)&&null!==t&&(this.view.classList.contains(t)&&this.view.classList.remove(t),this.view.className=this.MESSAGE_VIEW_CLASS),this.view.classList.add(t)},showPointer:function(){this.pointer.style.visibility="visible"},hidePointer:function(){this.pointer.style.visibility="hidden"},disablePointer:function(){this.pointer.style.display="none"}},i.prototype={init:function(t){var i=this;this.View=new e(this.data,this.option,this.utility),this.option.isPointer||this.disablePointer(),this.maxNum>0&&i.open(t.data)},isSet:function(t){return void 0!==t&&void 0!==t?!0:!1},open:function(t){this.isSet(this.selectedData.side_class)&&this.sideChange(),this.isSet(this.selectedData.name)&&this.nameChange(),this.isSet(this.selectedData.img_url)?this.characterChange():this.characterReset(),this.isSet(this.selectedData.message)&&this.commentChange(),this.View.open(t)},close:function(){this.messageView.removeEventListener(this.utility.vendor.defultEvent,this.onClick,!0),this.View.close()},next:function(){return this.loading===!0?void(this.option.ignoreSkip||(this.skip=!0)):(this.commentClear(),this.selectedNum+=1,void(this.maxNum>this.selectedNum?(this.selectedData=this.data[this.selectedNum],void 0!==this.selectedData.side_class&&this.sideChange(),this.selectedData.name&&this.nameChange(),this.selectedData.img_url?this.characterChange():this.characterReset(),this.selectedData.message&&this.commentChange()):this.maxNum<=this.selectedNum&&(this.option.loop?(this.selectedNum=this.option.page,this.selectedData=this.data[this.selectedNum],this.open(this.data)):(this.end(),this.close()))))},end:function(){this.callBack()},characterChange:function(){this.View.characterChange(this.selectedData)},characterReset:function(){this.View.characterChange(null)},sideChange:function(){this.View.sideChange(this.selectedData.side_class)},commentChange:function(){var t=this,e=this.selectedData.message.split(/]*)?\/?>/g),i=[],s="",n=this.addTime;this.hidePointer();for(var a in e)i.length>0&&i.push("
"),i.push(e[a].split(""));i=t.flatten(i),t.skip=!1,t.loading=!0;var o=function(){var e=i.shift();return e?(s+=e,t.skip&&(n=0,s+=i.join(""),i=[]),t.View.commentChange(s),void setTimeout(o,n)):(t.loading=!1,t.showPointer(),!1)};o()},flatten:function(t){for(var e=[],i=0;t.length>i;i++)if(t[i]instanceof Array)for(var s=0;t[i].length>s;s++)e.push(t[i][s]);else e.push(t[i]);return e},commentClear:function(){clearTimeout(this.timer),this.View.commentClear()},nameChange:function(){this.View.nameChange(this.selectedData)},showPointer:function(){this.option.isPointer&&this.View.showPointer()},hidePointer:function(){this.View.hidePointer()},disablePointer:function(){this.View.disablePointer()},setData:function(t){this.data=t},getData:function(){return this.data}},void 0===t.MessageViewer&&(t.MessageViewer={}),t.MessageViewer=i}(this); \ No newline at end of file +"use strict";!function(t){function e(t,e,i){this.utility=i,this.view=s.querySelector(e.view),this.contents=s.querySelector(e.contents),this.character=s.querySelector(e.character),this.characterImg=s.querySelector(e.characterImg),this.messageView=s.querySelector(e.messageView),this.message=s.querySelector(e.message),this.name=s.querySelector(e.name),this.pointer=s.querySelector(e.pointer),this.MESSAGE_VIEW_CLASS=this.view.className,this.MESSAGE_CLOSE_CLASS=e.messageCloseClass,this.MESSAGE_OPEN_CLASS=e.messageOpenClass,this.CHARACTER_CLASS=this.character.className,this.MESSAGE_CLASS=this.message.className,this.init.apply(this,arguments)}function i(t,e){var i=this,a=t.option;if(this.option={view:".messageView#default",contents:".messageView#default .mv-contents",character:".messageView#default .mv-contents .mv-image.character",characterImg:".messageView#default .mv-contents .mv-image.character img",messageView:".messageView#default .mv-contents .mv-comment",message:".messageView#default .mv-contents .mv-comment .val",name:".messageView#default .mv-contents .mv-name",pointer:".messageView#default .mv-contents .mv-comment .pointer",messageOpenClass:"in",messageCloseClass:"hide",page:0,speed:"normal",ignoreSkip:!1,loop:!1,isPointer:!0,isClose:!0},this.addTime=30,this.loading=!1,this.isNumber=function(t){return"number"!=typeof t&&"string"!=typeof t?!1:t==parseFloat(t)&&isFinite(t)},void 0!==a){for(var o in a)this.option[o]=a[o];switch(this.option.speed){case"normal":i.addTime=30;break;case"fast":i.addTime=10;break;case"slow":i.addTime=80;break;default:i.addTime=30}this.isNumber(this.option.speed)&&(i.addTime=Math.abs(Math.round(this.option.speed)))}void 0!==t&&(this.data=t.data,this.selectedNum=this.option.page,this.selectedData=t.data[0],this.maxNum=t.data.length),this.set=function(t){for(var e in t)this.option[e]=t[e];return this},this.messageView=s.querySelector(this.option.view),this.onClick=function(t){t.stopPropagation(),t.preventDefault(),i.next.call(i)},this.utility=new n(this.option),this.messageView.addEventListener(this.utility.vendor.defultEvent,i.onClick,!0),void 0!==t.data&&this.init.apply(this,[t.data]),this.callBack=function(){void 0!==e&&e()},this.skip=!1}var s=t.document,n=function(){function t(t){this.support={touch:"ontouchstart"in window},this.vendor={defultEvent:"click",transitionend:this.whichTransitionEvent(),animationend:this.whichAnimationEvent()},this.support.touch&&(this.vendor.defultEvent="touchend")}return t.prototype.whichAnimationEvent=function(){var t,e=s.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]},t.prototype.whichTransitionEvent=function(){var t,e=s.createElement("fakeelement"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in i)if(void 0!==e.style[t])return i[t]},t}();e.prototype={init:function(){},isSet:function(t){return void 0!==t&&void 0!==t?!0:!1},open:function(){this.view.classList.contains(this.MESSAGE_CLOSE_CLASS)&&this.view.classList.remove(this.MESSAGE_CLOSE_CLASS)},close:function(){this.view.classList.add(this.MESSAGE_CLOSE_CLASS),this.message.classList.add(this.MESSAGE_OPEN_CLASS),this.character.classList.add(this.MESSAGE_OPEN_CLASS)},commentChange:function(t){this.message.innerHTML="",this.message.innerHTML=t,this.messageView.classList.remove(this.MESSAGE_OPEN_CLASS)},commentClear:function(){this.message.innerHTML=""},characterChange:function(t){var e=this;t&&t.img_url?(this.characterImg.src=t.img_url,setTimeout(function(){e.character.className=e.CHARACTER_CLASS,e.character.addEventListener(e.utility.vendor.transitionend,function t(){e.messageView.className=e.MESSAGE_CLASS,this.removeEventListener(e.utility.vendor.transitionend,t,!1)})},80)):e.character.className=e.CHARACTER_CLASS},nameChange:function(t){this.name.innerHTML=t.name},sideChange:function(t){this.isSet(t)&&null!==t&&(this.view.classList.contains(t)&&this.view.classList.remove(t),this.view.className=this.MESSAGE_VIEW_CLASS),this.view.classList.add(t)},showPointer:function(){this.pointer.style.visibility="visible"},hidePointer:function(){this.pointer.style.visibility="hidden"},disablePointer:function(){this.pointer.style.display="none"}},i.prototype={init:function(t){var i=this;this.View=new e(this.data,this.option,this.utility),this.option.isPointer||this.disablePointer(),this.maxNum>0&&i.open(t.data)},isSet:function(t){return void 0!==t&&void 0!==t?!0:!1},open:function(t){this.isSet(this.selectedData.side_class)&&this.sideChange(),this.isSet(this.selectedData.name)&&this.nameChange(),this.isSet(this.selectedData.img_url)?this.characterChange():this.characterReset(),this.isSet(this.selectedData.message)&&this.commentChange(),this.View.open(t)},close:function(){this.messageView.removeEventListener(this.utility.vendor.defultEvent,this.onClick,!0),this.View.close()},next:function(){return this.loading===!0?void(this.option.ignoreSkip||(this.skip=!0)):(this.commentClear(),this.selectedNum+=1,void(this.maxNum>this.selectedNum?(this.selectedData=this.data[this.selectedNum],void 0!==this.selectedData.side_class&&this.sideChange(),this.selectedData.name&&this.nameChange(),this.selectedData.img_url?this.characterChange():this.characterReset(),this.selectedData.message&&this.commentChange()):this.maxNum<=this.selectedNum&&(this.option.loop?(this.selectedNum=this.option.page,this.selectedData=this.data[this.selectedNum],this.open(this.data)):(this.end(),this.option.isClose&&this.close()))))},end:function(){this.callBack()},characterChange:function(){this.View.characterChange(this.selectedData)},characterReset:function(){this.View.characterChange(null)},sideChange:function(){this.View.sideChange(this.selectedData.side_class)},commentChange:function(){var t=this,e=this.selectedData.message.split(/]*)?\/?>/g),i=[],s="",n=this.addTime;this.hidePointer();for(var a in e)i.length>0&&i.push("
"),i.push(e[a].split(""));i=t.flatten(i),t.skip=!1,t.loading=!0;var o=function(){var e=i.shift();return e?(s+=e,t.skip&&(n=0,s+=i.join(""),i=[]),t.View.commentChange(s),void setTimeout(o,n)):(t.loading=!1,t.showPointer(),!1)};o()},flatten:function(t){for(var e=[],i=0;t.length>i;i++)if(t[i]instanceof Array)for(var s=0;t[i].length>s;s++)e.push(t[i][s]);else e.push(t[i]);return e},commentClear:function(){clearTimeout(this.timer),this.View.commentClear()},nameChange:function(){this.View.nameChange(this.selectedData)},showPointer:function(){this.option.isPointer&&this.View.showPointer()},hidePointer:function(){this.View.hidePointer()},disablePointer:function(){this.View.disablePointer()},setData:function(t){this.data=t},getData:function(){return this.data}},void 0===t.MessageViewer&&(t.MessageViewer={}),t.MessageViewer=i}(this); \ No newline at end of file diff --git a/package.json b/package.json index f783894..b745eb0 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,17 @@ { - "name": "message_view", - "version": "1.0.0", - "description": "web帳:message_view.js", - "main": "index.js", + "name": "message-view-js", + "version": "1.0.2", + "description": "「MessageViewJS」はゲーム内でよくある会話シーンを簡単実装できる、JavaScriptライブラリです。Talking Scene JavaScript Library HTML5, WebGame etc...", + "main": "dist/message_view.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "javaScript", - "message" + "message", + "game", + "Talking Scene", + "Library" ], "author": "daisuke.takayama", "license": "MIT", diff --git a/src/js/message_view.js b/src/js/message_view.js index 845eca4..7daa3ba 100644 --- a/src/js/message_view.js +++ b/src/js/message_view.js @@ -188,7 +188,8 @@ speed: 'normal', ignoreSkip: false, loop: false, - isPointer: true + isPointer: true, + isClose: true }; this.addTime = 30; this.loading = false; @@ -339,7 +340,9 @@ this.open(this.data); } else { this.end(); - this.close(); + if (this.option.isClose) { + this.close(); + } } } }, @@ -455,4 +458,4 @@ global.MessageViewer = {}; } global.MessageViewer = Message; -})(this); \ No newline at end of file +})(this);