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);