var Code = function () { var _domElement = document.createElement( 'div' ); _domElement.style.position = 'absolute'; _domElement.style.backgroundColor = '#f0f0f0'; _domElement.style.overflow = 'auto'; // var _html = false; var _checkbox = document.createElement( 'input' ); _checkbox.type = 'checkbox'; _checkbox.style.margin = '20px 6px 0px 20px'; _checkbox.addEventListener( 'click', function () { _html = !_html; _update(); }, false ); _domElement.appendChild( _checkbox ); var _preview = document.createElement( 'a' ); _preview.href = '#'; _preview.innerHTML = 'preview'; _preview.style.margin = '20px 6px 0px 20px'; _preview.addEventListener( 'click', function () { // Get unescaped code gen var temp=document.createElement("pre"); temp.innerHTML = _codegen( true ); temp = temp.firstChild.nodeValue; temp = temp.replace("js/Three.js", "../build/Three.js"); var opener = window.open('','myconsole', 'width=800,height=400' +',menubar=1' +',toolbar=0' +',status=1' +',scrollbars=1' +',resizable=1'); opener.document.writeln( temp ); opener.document.close(); }, false ); _domElement.appendChild( _preview ); /* var _checkboxText = document.createElement( 'span' ); _checkboxText.style.fontFamily = 'Monospace'; _checkboxText.innerText = 'HTML'; _domElement.appendChild( _checkboxText ); */ // var _code = document.createElement( 'pre' ); _code.style.color = '#404040'; _code.style.margin = '20px'; _code.style.fontSize = '13px'; _code.style.whiteSpace = 'pre'; // 'pre-wrap' _domElement.appendChild( _code ); // var _list = []; var _codegen = function (html) { var string = ''; console.log(_list); string += [ 'var camera, scene, renderer;', '', 'init();', 'animate();', '', 'function init() {', '', '\tcamera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );', '\tcamera.position.z = 500;', '', '\tscene = new THREE.Scene();', '' ].join( '\n' ); for ( var i = 0, l = _list.length; i < l; i ++ ) { string += _list[ i ] + '\n'; } string += [ '', '\trenderer = new THREE.WebGLRenderer()', '\trenderer.setSize( window.innerWidth, window.innerHeight );', '\tdocument.body.appendChild( renderer.domElement );', '', '}', '', 'function animate() {', '', '\trequestAnimationFrame( animate );', '\trender();', '', '}', '', 'function render() {', '', '\trenderer.render( scene, camera );', '', '}' ].join( '\n' ); if ( html ) { string = '<!doctype html>\n<html>\n\t<body>\ \n\t\t<style> body {background-color: #f0f0f0;} </style>\ \n\t\t<script src=\"js/Three.js\"></script>\ \n\t\t<script>\n' + ( '\n' + string ).replace( /\n/gi, '\n\t\t\t' ) + '\n\n\t\t</script>\n\t</body>\n</html>'; } return string; } var _update = function () { _code.innerHTML = _codegen( _html ); } var _strfor = function(str) { for (var i=1; i