Пример малость подправил, несущественно.
Написан пример на С++ и ATL. Flash10а.ocx и сам мувик сидят в ресурсах, можете посмотреть резхакером. Оттуда и грузятся. По вашему коду сказать мало что могу, дэлфями занимался мало.
Попробуйте версию плеера пониже, что ли.. не знаю, чем вам помочь. Видимо, дело таки в обертке.
Код С++

Код:
HRESULT CFlashEventDispatch::FlashCall_Handler (_bstr_t request)
{
// request не анализирую, ибо пример.
CString msg = "<string>SetReturnValue rules ";
CString t;
static int i = 0;
t.Format(L"%X",i);
m_spPlayer->SetReturnValue(_bstr_t(msg+t+" times!</string>"));
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>Call Function rules ";
CString t;
t.Format(L"%d",i);
m_spPlayer->CallFunction(_bstr_t(msg+t+" times!</string></arguments></invoke>"));
i++;
return 0;
}
Код AS 2.0

Код:
import flash.external.*;
btn.onRelease = function() {
out.text = String(ExternalInterface.call("sayHello", "по-фик что"));
};
function newfunc(arg:String):Void {
out.text = arg + newline;
}
ExternalInterface.addCallback("newfunc", this, newfunc);