Ну, списки не очень различаются, плеер-то один и тот же...
Цитата:
|
я для вызова флэш функции использую CallFunction, и подписаное событие для получения ответа, такое взаимодействие везде описано как штатное,SetReturnValue не использовал.... везде AS3
|
Не очень понял, вроде CallFunction синхронный.
Цитата:
|
Еще сомнения...ExternalInterface.addCallback для всех функций делаю в конце точки входа, все открываемые функции находятся ниже, не может быть чего плохого?
|
Тоже поясните, плиз. Не догоняю...что за точка входа, какие функции и почему они ниже?
На выходных попробую потерзать res.exe. Будет что-то интересное, отпишусь.
UPD:
Сделал пример с AS 3.0.
При старте имеем 17'560 Кб. Лики больше и чаще на SetReturnValue, FlashCall тоже течет, но процентов на 70% умереннее, на глаз. После нескольких сотен (350~400)вызовов вперемешку, но с перевесом на SetReturnValue, имеем ~20'250Кб. Однако, в какой-то момент расход скачкообразно уменьшается до ~18'500Кб и после этого лики идут вяло и в большинстве гасятся.
С AS 2.0 - роликом на старте имеем 16'480 Кб. Лики идут примерно вровень на обоих вызовах, на ~ 450 вызовах вперемешку расход догнал до ~17'100. Дальнейшие лики почему-то практически не происходят.
Исходник поправил так, что CallFunction возвращает результат, происходит это синхронно, так что про события, повторюсь, не понял.

Код:
HRESULT CFlashEventDispatch::FlashCall (_bstr_t request)
{
//::MessageBox(NULL,request,L"FlashCall request",0);
static int i = 0;
CString msg = "<string>SetReturnValue rules ";
CString t;
t.Format(L"%d",i);
_bstr_t ret = _bstr_t(msg+t+" times!</string>");
HRESULT hr = m_spPlayer->SetReturnValue(ret);
i++;
return S_OK;
}
...
LRESULT CFlashHost::OnRButtonDown(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& bHandled)
{
static int i = 0;
CString msg = "<invoke name=\"newfunc\" returntype=\"xml\"><arguments><string>FlashCall rules ";
CString t;
t.Format(L"%d",i);
_bstr_t res = m_spPlayer->CallFunction(_bstr_t(msg+t+" times!</string></arguments></invoke>"));
//::MessageBox(NULL,res,L"CallFunction response",0);
i++;
return 0;
}
Да, почему в вашем списке подгруженных модулей Flash.ocx присутствует дважды?
res3.zip (c AS 3.0) положил рядом с обновленным res.zip (с мессаджбоксами) на народе там же в pub. Плеер 10а.