Changeset 16972 for lang/actionscript

Show
Ignore:
Timestamp:
08/02/08 12:25:27 (4 months ago)
Author:
hoge1e3
Message:
 
Location:
lang/actionscript/todoshare
Files:
2 added
7 modified
1 moved

Legend:

Unmodified
Added
Removed
  • lang/actionscript/todoshare/.actionScriptProperties

    r16772 r16972  
    66<libraryPathEntry kind="4" path=""> 
    77<excludedEntries> 
     8<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/> 
    89<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/> 
    9 <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/> 
    1010<libraryPathEntry kind="1" linkType="1" path="${PROJECT_FRAMEWORKS}/locale/{locale}"/> 
    1111<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_flashflexkit.swc" useDefaultLinkType="false"/> 
    1212<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/> 
     13<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/> 
    1314<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/rpc.swc" useDefaultLinkType="false"/> 
    14 <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/> 
     15<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/> 
    1516<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/datavisualization.swc" useDefaultLinkType="false"/> 
    16 <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/> 
    1717<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/> 
    1818<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="false"/> 
  • lang/actionscript/todoshare/DBConsoleFlash.html

    r16014 r16972  
    5353   } 
    5454} 
    55 setInterval("fetchEvents()",10); 
    56 </script><body><!-- 
     55function start() { 
     56  setInterval("fetchEvents()",10); 
     57} 
     58 
     59</script><body onload="start()"><!-- 
    5760Object <input id=inp_obj type=text name=obj><BR> 
    5861Name <input  id=inp_name type=text name=name><BR> 
  • lang/actionscript/todoshare/TodoShare.as

    r16772 r16972  
    11package { 
    22        import app.Todo; 
     3         
     4        import core.JsonScript; 
    35         
    46        import db.JSQL; 
     
    1416        import flash.net.URLRequestMethod; 
    1517        import flash.net.URLVariables; 
     18         
     19        import util.Debug; 
    1620        [SWF(width="800",height="600",frameRate="24",backgroundColor="#FFFFFF")] 
    1721     
     
    4852                        inited=true; 
    4953                        //send(); 
     54                         
     55                        JsonScript.inst.registerAction("aho",function (a,b) { 
     56                                Debug.p((a+b)+"!"); 
     57                        }); 
     58                         
     59                        Debug.p("?"); 
     60                        JsonScript.inst.exec(["aho",3,5]); 
    5061                         
    5162                        ExternalInterface.addCallback( 
  • lang/actionscript/todoshare/core/JsonScript.as

    r16772 r16972  
    55                public static var NOP:JsonScriptAction= 
    66                  new JsonScriptAction(function (){return this;}); 
    7                 function static sequencial():JsonScriptAction { 
     7                private function sequencial() { 
    88                    var a:Array=arguments; 
    99                if (a.length==0) return NOP; 
    10                 var firstExpr=a.shift(); 
    11                 var firstAction=this.eval(firstExpr); 
     10                var firstExpr:Object=a.shift(); 
     11                var firstAction:Object=this.eval(firstExpr); 
    1212                if (a.length==0) return firstAction;  
    13                 var env=this; 
     13                var env:JsonScript=this; 
    1414                var restAction=sequencial.apply(env,a); 
    1515                return new JsonScriptAction(function () { 
    1616                   var state=this; 
    17                    state=firstAction.apply(state); 
    18                    state=restAction.apply(state); 
     17                   state=firstAction.apply(state,[]); 
     18                   state=restAction.apply(state,[]); 
    1919                   return state; 
    2020                });  
    2121                } 
    2222                public var functions:Object; 
     23                public static var inst:JsonScript=new JsonScript(); 
    2324                public function JsonScript() 
    2425                { 
     
    2728                    return sequencial.apply(this,arguments); 
    2829                 }); 
    29                   registerFunction: function (name, f) { 
    30      this.functions[name]=f; 
    31   },  
    32   registerAction : function (name, action) { 
    33      // env:   for evaluating pure function 
    34      // state: for executing actions 
    35       
    36      this.registerFunction(name,function () { 
    37         var env=this; 
    38         var argActions=$A(arguments).map(function (expr) { 
    39           var r=env.eval(expr); 
    40           if (r instanceof JsonScriptAction) return r; 
    41           else return new JsonScriptAction(function () { 
    42              var state=this; 
    43              state.returnValue=r; 
    44              return state; 
    45           }); 
    46         }); 
    47         return new JsonScriptAction(function () { 
    48            var state=this; 
    49            var pass=argActions.map(function (act){ 
    50               state=act.apply(state); 
    51               return state.returnValue; 
    52            }); 
    53            state.returnValue=action.apply(state,pass); 
    54            return state; 
    55         }); 
    56      });   
    57   }, 
    58   eval:function (expr) { 
    59      if (expr instanceof Array) { 
    60         var env=this; 
    61         var fname=expr.shift(); 
    62         var f=this.functions[fname]; 
    63         if (!f) throw fname+" is not function "; 
    64         return f.apply(env,expr);     
    65      } else return expr;  
    66   }, 
    67   compile:function (expr) {return this.eval(expr);}, 
    68   exec:function (prog) { 
    69      this.compile(prog).apply(this); 
    70   }, 
    71   handler: function(cmd) { 
    72      return "JsonScript.exec("+Object.toJSON(cmd)+")"; 
    73   } 
    74 }; 
    75 JsonScript=new JsonScriptClass(); 
    76  
    77    
    78                 } 
    79  
    80         } 
     30                } 
     31                public function registerFunction(name:String, f:Function) { 
     32                this.functions[name]=f; 
     33                }  
     34                public function registerAction(name:String, action:Function):void { 
     35             // env:   for evaluating pure function 
     36             // state: for executing actions 
     37                     registerFunction(name,function () { 
     38                        var env=this; 
     39                        var argActions=arguments.map(function (expr) { 
     40                          var r=env.eval(expr); 
     41                          if (r instanceof JsonScriptAction) return r; 
     42                          else return new JsonScriptAction(function () { 
     43                             var state=this; 
     44                             state.returnValue=r; 
     45                             return state; 
     46                          }); 
     47                        }); 
     48                        return new JsonScriptAction(function () { 
     49                           var state=this; 
     50                           var pass=argActions.map(function (act){ 
     51                              state=act.apply(state,[]); 
     52                              return state.returnValue; 
     53                           }); 
     54                           state.returnValue=action.apply(state,pass); 
     55                           return state; 
     56                        }); 
     57                     });   
     58                  } 
     59                  public function eval(expr:Object):Object { 
     60                     if (expr instanceof Array) { 
     61                        var env=this; 
     62                        var fname=expr.shift(); 
     63                        var f=this.functions[fname]; 
     64                        if (!f) throw fname+" is not function "; 
     65                        return f.apply(env,expr);     
     66                     } else return expr;  
     67                  } 
     68                  public function  compile(expr:Object):Object {return this.eval(expr);} 
     69                  public function  exec(prog:Object):void { 
     70                     this.compile(prog).apply({},[]); 
     71                  } 
     72        } 
    8173} 
  • lang/actionscript/todoshare/js/common.js

    r16697 r16972  
    11function db(cmd,onComplete) { 
     2   var env=this; 
    23   new Ajax.Request("db.cgi", { 
    34                method: "put", 
     
    56                onSuccess:function(httpObj){ 
    67                   try { 
    7                      onComplete( httpObj.responseText.evalJSON() ); 
     8                     onComplete.apply(env, httpObj.responseText.evalJSON() ); 
    89                   } catch(e) {print(e);} 
    910                }, 
     
    1314   }); 
    1415} 
     16function dbPut(query,after) { 
     17  db(["INSERT3",query],after); 
     18} 
     19dbPut.async=true; 
     20function dbGet(query,after) { 
     21  db(["GET3",query],after); 
     22} 
     23dbGet.async=true; 
     24 
     25Function.prototype.then=function (n) { 
     26  return function () { 
     27     return n(this.apply(this,arguments)); 
     28  }; 
     29}; 
    1530var consoleBuf=""; 
    16 function print(m) { 
    17    var c=$("console"); 
    18    if (c) { 
    19       consoleBuf+=m+"\n"; 
    20       c.innerHTML=consoleBuf; 
    21    } else {alert(m);} 
     31var indent=""; 
     32function print() { 
     33  var app=indent; 
     34  $A(arguments).each(function (e) { 
     35    if (typeof(e)=="object") { 
     36       app+=Object.toJSON(e); 
     37    } else { 
     38       if (e==">") indent+="--"; 
     39       else if (e=="<") indent=indent.substring("--".length);        
     40       else app+=e; 
     41    } 
     42  }); 
     43  var c=$("console"); 
     44  if (c) { 
     45     consoleBuf+=app+"<BR>\n"; 
     46     c.innerHTML=consoleBuf; 
     47  } else {alert(app);} 
    2248} 
    2349function link2obj(id) { 
  • lang/actionscript/todoshare/test/scriptTest.html

    r16713 r16972  
    22<script src="../prototype.js"></script> 
    33<script src="../js/jsonScr.js"></script> 
     4<script src="../js/common.js"></script> 
    45<script> 
     6/*function a() { 
     7  alert("A " +this); 
     8  b.apply(this,[]); 
     9} 
     10function b() { 
     11  alert("B " +this); 
     12} 
     13a.apply("aho",[]); 
     14a.apply("baka",[]); 
    515 
    6  
    7  
     16a=[4,50,62]; 
     17a.push(100); 
     18alert(a.join(", ")); 
     19function add5() { 
     20  var s=$("sp"); 
     21  s["innerHTML"]="Y"; 
     22} 
    823JsonScript.registerAction("test",function (x,y) { 
    924  alert(x+y); 
    1025}); 
    1126JsonScript.registerAction("alert",function (t) {alert("ALR"+t);}); 
    12 /*function add5() { 
    13     
    14 }*/ 
    1527 
    1628add5=JsonScript.compile(["PROGN", 
     
    1931     ["alert","aho"] 
    2032]); 
    21 /*add2=j.compile(["test",2,6]); 
    22 function add3() { 
    23   add2.apply(this); 
    24 }*/ 
     33*/ 
     34function test(x,y) { 
     35  if (y==null) y=this._; 
     36  return x+y; 
     37} 
     38function testa(x,y,onEnd) { 
     39  onEnd.apply(this,[x+y]); 
     40} 
     41testa.async=true; 
     42function show() { 
     43  print(this._); 
     44} 
     45function show2(x) { 
     46  print (x); 
     47} 
     48_=gv("_"); 
     49function start() { 
     50  //print ("Aho =",["baka",3]); 
     51  add5=compile( 
     52      [testa,3,4], 
     53      show 
     54  ); 
     55} 
    2556 
    2657</script> 
    2758</head> 
    28 <body id="b"> 
     59<body id="b" onLoad="start()"> 
    2960<button onclick="add5()">+</button> 
    30  
     61<HR> 
     62<span id="console">X</span> 
    3163</body> 
    3264