守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 849|回复: 0

[基础入门] alchemy中定义多个方法

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51757
    钢镚
    1422

    开源英雄守望者

    发表于 2015-4-7 10:21:42 | 显示全部楼层 |阅读模式
    1. //Simple String Echo example
    2. //mike chambers
    3. //mchamber@adobe.com

    4. #include <stdlib.h>
    5. #include <stdio.h>

    6. //Header file for AS3 interop APIs
    7. //this is linked in by the compiler (when using flaccon)
    8. #include "AS3.h"

    9. double sum(int num)
    10. {
    11.      int i;
    12.      double total=0;
    13.      for (i=1;i<=num;i++)
    14.      {
    15.          total += i;
    16.      }
    17.      return total;
    18. }

    19. //Method exposed to ActionScript
    20. //Takes a String and echos it
    21. static AS3_Val echo(void* self, AS3_Val args)
    22. {
    23.     //9 variable
    24.     int num;
    25.     double total;
    26.     char buf[256];

    27.     AS3_ArrayValue(args, "IntType", &num);
    28.      
    29.     total = sum(num);
    30.     sprintf(buf, "%lf", total);
    31.     return AS3_String(buf);
    32. }

    33. //try new function
    34. static AS3_Val returnTheSelf(void* self,AS3_Val args){
    35.     //initialize string to null
    36.     char* val = NULL;
    37.      
    38.     //parse the arguments. Expect 1.
    39.     //pass in val to hold the first argument, which
    40.     //should be a string
    41.     AS3_ArrayValue( args, "StrType", &val );
    42.      
    43.     //if no argument is specified
    44.     if(val == NULL)
    45.     {
    46.         char* nullString = "null";
    47.         //return the string "null"
    48.         return AS3_String(nullString);
    49.     }
    50.      
    51.     //otherwise, return the string that was passed in
    52.     return AS3_String(val);

    53. }

    54. //entry point for code
    55. int main()
    56. {
    57.     //define the methods exposed to ActionScript
    58.     //typed as an ActionScript Function instance
    59.     AS3_Val echoMethod = AS3_Function( NULL, echo );
    60.     AS3_Val returnTheSelfMethod=AS3_Function(NULL,returnTheSelf);

    61.     // construct an object that holds references to the functions
    62.     AS3_Val result = AS3_Object( "echo: AS3ValType,returnTheSelf:AS3ValType", echoMethod ,returnTheSelfMethod);
    63.     //result=AS3_Object("returnTheSelf:AS3ValType",returnTheSelfMethod);

    64.     // Release
    65.     AS3_Release( echoMethod );
    66.     AS3_Release(returnTheSelfMethod);

    67.     // notify that we initialized -- THIS DOES NOT RETURN!
    68.     AS3_LibInit( result );

    69.     // should never get here!
    70.     return 0;
    71. }
    复制代码
    如上:

    1. AS3_Val result = AS3_Object( "echo: AS3ValType,returnTheSelf:AS3ValType", echoMethod ,returnTheSelfMethod);
    复制代码
    此object中承载了两个方法:echo,returnTheSelf.


    本文来自:http://www.cnblogs.com/176170847/archive/2011/01/27/1946206.html
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-10-23 17:32 , Processed in 0.037553 second(s), 31 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表