@@ -48,7 +48,7 @@ var CCLScripting = function(workerUrl){
4848 } ;
4949 this . updateProperty = function ( objectId , propName , value ) {
5050 if ( ! objects [ objectId ] ) {
51- scripter . logger . error ( "Object not found." ) ;
51+ scripter . logger . error ( "Object (" + objectId + ") not found.") ;
5252 return ;
5353 }
5454 if ( objects [ objectId ] [ propName ] === undefined ) {
@@ -61,7 +61,7 @@ var CCLScripting = function(workerUrl){
6161 } ;
6262 this . callMethod = function ( objectId , methodName , params ) {
6363 if ( ! objects [ objectId ] ) {
64- scripter . logger . error ( "Object not found." ) ;
64+ scripter . logger . error ( "Object (" + objectId + ") not found.") ;
6565 return ;
6666 }
6767 if ( ! objects [ objectId ] [ methodName ] ) {
@@ -80,7 +80,27 @@ var CCLScripting = function(workerUrl){
8080 } ;
8181 }
8282 } ;
83-
83+ this . getObject = function ( objectId ) {
84+ if ( ! objects . hasOwnProperty ( objectId ) ) {
85+ scripter . logger . error ( "Object (" + objectId + ") not found." ) ;
86+ return objects [ objectId ] ;
87+ }
88+ return objects [ objectId ] ;
89+ } ;
90+ this . invokeError = function ( msg , mode ) {
91+ switch ( mode ) {
92+ case "err" :
93+ scripter . logger . error ( msg ) ;
94+ break ;
95+ case "warn" :
96+ scripter . logger . warn ( msg ) ;
97+ break ;
98+ default :
99+ case "log" :
100+ scripter . logger . log ( msg ) ;
101+ break ;
102+ }
103+ } ;
84104 this . clear = function ( ) {
85105
86106 } ;
@@ -821,6 +841,19 @@ var CCLScripting = function(workerUrl){
821841 ScriptingContext . prototype . Unpack . Sprite = function ( stage , data , ctx ) {
822842 this . DOM = _ ( "div" , { "style" :{ "position" :"absolute" } } ) ;
823843
844+ this . __defineSetter__ ( "x" , function ( f ) {
845+ this . setX ( f ) ;
846+ } ) ;
847+ this . __defineSetter__ ( "y" , function ( f ) {
848+ this . setY ( f ) ;
849+ } ) ;
850+ this . __defineGetter__ ( "x" , function ( f ) {
851+ return this . DOM . offsetLeft ;
852+ } ) ;
853+ this . __defineGetter__ ( "y" , function ( f ) {
854+ return this . DOM . offsetTop ;
855+ } ) ;
856+
824857 this . setX = function ( x ) {
825858 this . DOM . style . left = x + "px" ;
826859 } ;
@@ -837,6 +870,28 @@ var CCLScripting = function(workerUrl){
837870 this . DOM . style . height = height + "px" ;
838871 } ;
839872
873+ this . addChild = function ( childitem ) {
874+ var child = ctx . getObject ( childitem ) ;
875+ if ( ! child )
876+ return ;
877+ if ( child . DOM ) {
878+ this . DOM . appendChild ( child . DOM ) ;
879+ } else {
880+ ctx . invokeError ( "Sprite.addChild failed. Attempted to add non object" , "err" ) ;
881+ }
882+ } ;
883+
884+ this . removeChild = function ( childitem ) {
885+ var child = ctx . getObject ( childitem ) ;
886+ if ( ! child )
887+ return ;
888+ try {
889+ this . DOM . removeChild ( child . DOM ) ;
890+ } catch ( e ) {
891+ ctx . invokeError ( e . stack , "err" ) ;
892+ }
893+ } ;
894+
840895 this . unload = function ( ) {
841896 try {
842897 stage . removeChild ( this . DOM ) ;
0 commit comments