• FlasCC例子研究之c++interop


    这个例子主要是向用户展示,如何通过FlasCC提供的API,来操作AS3中的运行时库。 包括stage,sprite等。

    #include <vector>
    #include <AS3/AS3.h>
    #include <Flash++.h>

    Flash 11.4时提供了一个基于工作线程的并发模型。这使得多个工作线程几乎可以同时访问Flash的API,只有一个限制就是,多个工作线程的对象不可以相互传递。工作线程之间的通信必须通过一个特殊的机制MessageChannel,或者在Flash 11.5后,可以使用共享的ByteArray进行通信。

    Flash++这个头文件提供了两组Flash API的绑定。一是Flash中的UI工作线程的对象,另一个就是一个属于一个工作线程的本地对象。

    当使用“ui”相关的属性来访问时,这些方法的调用会被阻塞,直到它可以被主工作线程服务并调用CModule.serviceUIRequests() (这一般情况下是被EnterFrame或者在一个timer中被处理)

    using namespace AS3::ui;

    int main()
    {
        //取得当前舞台的引用
        flash::display::Stage stage = internal::get_Stage();

        //我们用一个C++ VECTOR来装Sprite引用
        std::vector<flash::display::Sprite> sprites;
        int numCircles = 10;

        for(int i=0; i<numCircles; i++) {
            // 新建一个Sprite
            flash::display::Sprite mySprite = flash::display::Sprite::_new();

            //访问它们的 graphics属性,然后,我们用来绘制

            flash::display::Graphics graphics = mySprite->graphics;

            //绘制实心圆
            graphics->beginFill(0xff00ff, 0.5);
            graphics->drawCircle(0.0, 0.0, 30.0);
            graphics->endFill();

            // 保存下来
            sprites.push_back(mySprite);
        }

        // 添加到舞台
        for(int i=0; i<numCircles; i++) {
            // 修改位置
            flash::display::Sprite s = sprites[i];
            s->x = i * 25;
            s->y = i * 25;

            //添加进舞台
            stage->addChild(s);
        }
    }

    来张图吧,我们终于可以看见东西了。

    image

  • 相关阅读:
    关于url路径的定义方式
    script标签的位置
    jQuery中ready与load事件的区别
    Python中cv2库和matplotlib库色彩空间排布不一致
    OpenCV for Python 学习笔记 三
    OpenCV for Python 学习笔记 二
    OpenCV for Python 学习笔记 一
    CentOS7配置opencv for python && eclipse c/c++[更新]
    <转>关于 error LNK2019:无法解析的外部符号 ,该符号在函数**中被引用的思考
    OpenCV load 运行出错 cv::Exception 出错
  • 原文地址:https://www.cnblogs.com/qilinzi/p/3079028.html
Copyright © 2020-2023  润新知