Adobe 闪光炼金术:通过漂浮物阵列

Adobe 闪光炼金术:通过漂浮物阵列,adobe,swc,alchemy,Adobe,Swc,Alchemy,不起作用: var b:ByteArray = new ByteArray(); b.writeFloat(-50.000000); b.position = 0; cpp.processFloat(b,b.bytesAvailable); CPP: fprintf输出: **processFloat大小:4文件:0.000,分辨率:4 怎么了?如何将浮点数组从闪存传递到swc?您的问题

不起作用:

             var b:ByteArray = new ByteArray();
             b.writeFloat(-50.000000);
             b.position = 0;


             cpp.processFloat(b,b.bytesAvailable);
CPP:

fprintf输出: **processFloat大小:4文件:0.000,分辨率:4


怎么了?如何将浮点数组从闪存传递到swc?

您的问题是字节顺序(更多详细信息)。您需要将ByteArray设置为Little Endian:

var b:ByteArray = new ByteArray();
b.endian= Endian.LITTLE_ENDIAN;
b.writeFloat(-50.000000);
b.position = 0;

cpp.processFloat(b,b.bytesAvailable);

此外,您的
iTestSize
也很混乱。您传入可用的字节,然后将其乘以大小(浮点)(并加1°)

没错,b.endian=endian.LITTLE\u endian解决了这个问题。float*sFile=(float*)malloc(sizeof(float)*(iTestSize+1));替换为float*sFile=(float*)malloc(sizeof(char)*iTestSize);也没有问题。非常感谢。
var b:ByteArray = new ByteArray();
b.endian= Endian.LITTLE_ENDIAN;
b.writeFloat(-50.000000);
b.position = 0;

cpp.processFloat(b,b.bytesAvailable);