![]() |
Zend_Amf, AMFPHP и т.д.: сериализация в Vector.<T>?
Уважаемый wvxvw озвучил:
Цитата:
Правильно ли я понимаю: За прошедший месяц ситуация не поменялась и на сегодняшний день ни один из amf-серверов не сериализует (нормально не сериализует) вектора. Может, все таки уже есть сдвиги в лучшую сторону? Сильно надо. |
А вектор, случаем, не устаревший интерфейс?
|
Наоборот обновленный , как на хабре написано http://habrahabr.ru/blogs/Flash_Platform/122178/ . если есть желание можете сами реализовать десереализатор
|
Цитата:
Цитата:
|
Читаем выше :
Цитата:
Спецификация дана , написать не сложно |
А вот как раз со спецификацией есть нюансы. А именно с длинной вектора, которая вроде как должна быть U29.
Пишем вот такой нехитрый код (Vector.<uint> - для примера): Код AS3:
Код:
По поводу длины вектора. Читаем спецификацию U29:
Получается что 0 должен быть 0, 1 должно быть 1, 2 должно быть 2 Имеем: вместо нуля - 1 вместо 1 - 3 вместо 2 - 5. Допустим, что спецификацию U29 надо понимать так, как написано в комменте на хабре: ; The first (low) bit is a flag with value 1.Тогда получается, что 0, 1, 2, 16 - правильно. А все что больше - неправильно. Наприрмер для 255 (0xff): как ни крути 837F - 8 единиц подряд (0xff) не получается. Получается либо больше либо меньше. Добавлено через 7 минут 0x83: 10000011 0x7f : 01111111 Как из этого получить 8 единиц? Добавлено через 1 час 44 минуты Ошибочка вышла. Работает. Если взять readUInt29() из http://cvlib.googlecode.com/svn-hist...or/amf/AMF3.as и результат сдвинуть вправо на один бит, то работет. |
| Часовой пояс GMT +4, время: 07:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.