12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- Sidebar.Script.Editor = function ( editor ) {
- var timeout;
- var scriptSource = new UI.TextArea( 'javascript' ).setWidth( '240px' ).setHeight( '180px' ).setFontSize( '12px' );
- scriptSource.onKeyUp( function () {
- clearTimeout( timeout );
- timeout = setTimeout( function () {
- var object = editor.selected;
- var source = scriptSource.getValue();
- try {
- var script = new Function( 'scene', 'time', source ).bind( object.clone() );
- script( new THREE.Scene(), 0 );
- scriptSource.dom.classList.add( 'success' );
- scriptSource.dom.classList.remove( 'fail' );
- } catch ( error ) {
- scriptSource.dom.classList.remove( 'success' );
- scriptSource.dom.classList.add( 'fail' );
- return;
- }
- editor.scripts[ object.uuid ] = [ source ];
- editor.signals.objectChanged.dispatch( object );
- }, 500 );
- } );
- return scriptSource;
- }
|