Итак, у меня есть коллекция классов C ++, которые у меня теперь отлично преобразуются с помощью Alchemy в файл swc и могут нормально вызывать открытые функции из моего кода AS3.
Что я действительно хотел бы сделатьэто воссоздать что-то вроде класса Box2D b2Vec.as,
public class b2Vec2 extends b2Base {
public function b2Vec2(p:int) {
_ptr = p;
}
public function get v2():V2 {
return new V2(x, y);
}
public function set v2(v:V2):void {
x = v.x;
y = v.y;
}
public function get x():Number { return mem._mrf(_ptr + 0); }
public function set x(v:Number):void { mem._mwf(_ptr + 0, v); }
public function get y():Number { return mem._mrf(_ptr + 4); }
public function set y(v:Number):void { mem._mwf(_ptr + 4, v); }
}
Это простой пример, но показывает, что я хотел бы сделать.Что касается C, b2Vec2 - это структура,
/// A 2D column vector.
struct b2Vec2
{
/// Default constructor does nothing (for performance).
b2Vec2() {}
....
float32 x, y;
};
Итак, для этой структуры легко вычислить, что первая переменная объекта b2Vec2 - это число с плавающей точкой, которое будет значением в xи может быть прочитан через классы MemUser Алхимии _mrf (чтение fload из точки в памяти) с помощью _mrf (pointerAddress), и вы можете читать во втором плавающем файле с помощью _mrf (pointerAddress + 4).
Мой вопрос такой,Если вы не являетесь экспертом в C ++ (я), есть ли способ получить определение класса, как в адресах всех переменных внутри и каковы они?Итак, для b2Vec2 я бы представил, что это будет что-то вроде: float32 x 0 float34 y 4 ...
Причина, по которой я спрашиваю, состоит в том, что один из классов, в частности, имеет множествоПеременные и попытка получить информацию обо всех и каждого, чтобы я мог получить к ней доступ непосредственно из кода AS3, было бы большой работой, и я собираюсь предположить, что внесу в нее множество человеческих ошибок.