Как передать Vector. <> Из Flash с ExternalInterface - PullRequest
1 голос
/ 15 декабря 2010

У меня есть пользовательский контейнер (C #) для элемента управления Flash ActiveX, и я передаю данные туда и обратно. Ранее я использовал ExternalInterface.call и передавал массив в качестве параметра. Я бы предпочел использовать класс Vector теперь, когда он доступен, но кажется, что когда я это делаю, вызов никогда не выполняется.

Это , однако, если оно встроено в IE. Похоже, что в IE Flash отправит JavaScript для выполнения, а не для сериализации в XML. Я предполагаю, что сериализация Vector XML не включена, поэтому Flash просто игнорирует вызов.

У кого-нибудь есть идеи? Кроме того, что я только что вернулся к использованию Array, я уже сделал это.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2010

вместо этого вы можете использовать массивы с [ArrayElementType("type")].или напишите функцию сериализации для Vector

0 голосов
/ 16 декабря 2010

документы обратите внимание, что:

Другие встроенные или пользовательские классы - ActionScript кодирует другие объекты как ноль или как пустой объект. В любом в случае потери значений любого свойства.

Не совсем понятно, что это значит, поскольку пользовательские классы также являются объектами - я полагаю, считаются только ванильные объекты? Но, во всяком случае, похоже, что Vector попадает в эту категорию «других встроенных классов», поэтому вам придется либо использовать Array, либо повторно привести к Array, прежде чем передавать данные.

...