炼金术无法获得列表的大小


    //--------------------------------------------test.cpp
// g++ test.cpp -O3 -Wall -swc -o test.swc

#include <iostream>
#include <list>
#include <vector>
#include "AS3.h"
using namespace std;
//vector<float> vf;
list<float> vf;
static AS3_Val getSize(void* self, AS3_Val args)
{
    int num = vf.size();
    return AS3_Int(num);
}
int main()
{
    AS3_Val getSizeMethod = AS3_Function( NULL, getSize);
    AS3_Val result = AS3_Object( "getSize:AS3ValType", getSizeMethod); 
    AS3_Release( getSizeMethod );
    AS3_LibInit( result );
    return 0;
}


    //-------------------------------------------------test.as
// C:alchemyflex4binmxmlc -library-path+=./test.swc -static-link-runtime-shared-libraries=true test.as 

package{
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import cmodule.test.CLibInit
    public class test extends Sprite{
        public function test() {
            var info:TextField = new TextField();
            this.addChild(info);

            var loader:CLibInit = new CLibInit();
            var lib:Object = loader.init();
            info.appendText("size:" + lib.getSize() + "n");
        }
    }
}

-------------------------------------问题------------------

1.测试.swf不能运行,但是如果我使用矢量,没关系!
2.如果我将一些元素推回列表中,它可以运行,但我得到的大小是错误的!

谁能帮我!谢谢!!

静态初始值设定项在 Alchemy 中被破坏。 要解决此问题,您需要在 main(( 中构建列表。 例如

list<float> vf;

成为

list<float> *vf;

在您的主要内容中,您需要创建它:

vf= new list<float>();

并且您的 getSize 方法将返回

int num = vf->size();

相关内容

  • 没有找到相关文章

最新更新