мм.. так в примере выше вполне себе используется экземпляр с++ класса Test (переменная t). Вызываются его методы, посмотрите внимательнее. Сложность в том, что нельзя сделать так:

Код:
AS3_Val someMethod2Val = AS3_Function(NULL, t.someMethod2);// ошибка компиляции
и приходится использовать "обертку":

Код AS3:
AS3_Val someMethod2(void *data, AS3_Val args)
{
return t.someMethod2(data, args);
}
Создать его (экземпляр) можно и динамически в одной из оберточных функций, почему нет?

Код AS3:
AS3_Val someMethod2(void *data, AS3_Val args)
{ Test t_local;
return t_local.someMethod2(data, args);
}
Цитата:
|
что же делать с элементами класса, их методами и алгоритмами?
|
да все так же как обычно, только чтобы все это достать из флеша надо немного постараться).
Самый простой случай - сделать все поля с++ класса статическими, тогад к ним можно будет обращаться "напрямую", как в примере:

Код:
// class static member thunk
AS3_Val someMethodVal = AS3_Function(NULL, &(Test::someMethod)); //someMethodVal по-сути указатель на статический метод класса Test
(естественно, создавать экземпляр такого класса не нужно, и обертки не понадобятся).
Ну, а здесь мы привязываем указатели к некоему ActionScript-объекту, с которым можно будет работать из флеша.

Код:
S3_Val result = AS3_Object("someEntry: AS3ValType, someMethod: AS3ValType, someMethod2: AS3ValType", someEntryVal, someMethodVal, someMethod2Val);