Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.12.2012, 12:48
ZicoRio вне форума Посмотреть профиль Отправить личное сообщение для ZicoRio Найти все сообщения от ZicoRio
  № 11  
Ответить с цитированием
ZicoRio
[+5 18.06.13]
[+1 20.07.13]

Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
Вот рабочая функция,
а если раскоментировать строки - все привет...

Код AS3:
private function func1(co:ByteArray):ByteArray{
        var addinfo:ByteArray=new ByteArray();
        co.readBytes(addinfo,0,22);
        co.position=0;
        if (addinfo.toString().substr(0,2)=='55'){
                var addicontlen:String=addinfo.toString().substr(2,10);
                addinfo.clear();
                var addilen:uint=22;
                for(var i:int=0;i<10;i++){
                        if (addicontlen.substr(i,1)!=='0'){
                                addilen+=uint(addicontlen.substr(i));
                                break;
                        }
                }
                ob_req.txt=co.readUTFBytes(addilen);
                var ty:int=int(ob_req.txt.substr(12,1));
                if (ty===1){
                        //addinfo.writeUTFBytes('AAA');
                }else if(ty===2){
                        //addinfo.writeUTFBytes('BBB');
                }
                addinfo.writeBytes(co,addilen);
                return addinfo;
        }
        ob_req.txt='';
        return co;
}

Старый 12.12.2012, 13:15
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 12  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Для начала.....
Код AS3:
var addinfo:ByteArray=new ByteArray();
co.readBytes(addinfo,0,22);
Вы пытаетесь сделать чтение из пустого ByteArray'а. Причём именно 22 байта. Откуда им там взяться, если вы только-что вызвали его конструктор? Он пуст!


А что вы хотите сделать то?


Последний раз редактировалось FlashRus; 12.12.2012 в 15:35.
Старый 12.12.2012, 13:21
ZicoRio вне форума Посмотреть профиль Отправить личное сообщение для ZicoRio Найти все сообщения от ZicoRio
  № 13  
Ответить с цитированием
ZicoRio
[+5 18.06.13]
[+1 20.07.13]

Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
ну какого пустого - я в пустой пишу!
говорю же - функция РАБОЧАЯ!

Добавлено через 54 минуты
Ну как!??
Неужели никто и ничего и никак??

Старый 12.12.2012, 15:25
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 14  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Я вам ещё раз повторяю!
Вы пытаетесь считать пустой ByteArray.

Смотрим пошагово....
Описали переменную и дали ей новый ПУСТОЙ ByteArray.
Код AS3:
var addinfo:ByteArray = new ByteArray();
Ура - теперь у нас есть чистый, девственный экземпляр класса ByteArray.


Берём другой ByteArray (неважно - пустой он или нет) и пытаемся записать в него ровно 22 байта с нулевой позиции из addinfo (нашего наичистейшего массива байтов).
Код AS3:
co.readBytes(addinfo,0,22);
Теперь вопрос (та-да-да-да):
Откуда у нас добавятся байты????
Что-же будет в нашем co???



Могу объяснить совсем на пальцах.
Берём ведёрко с чем нибудь (а может и ни с чем), берём второе ведёрко (100% - пустое) и начинаем перекладывать из второго ведёрка в первое его содержимое. Что же будет в первом ведёрке, после того как мы завершим перекладывать содерижмое из второго???


Последний раз редактировалось FlashRus; 12.12.2012 в 15:38.
Старый 12.12.2012, 19:16
ZicoRio вне форума Посмотреть профиль Отправить личное сообщение для ZicoRio Найти все сообщения от ZicoRio
  № 15  
Ответить с цитированием
ZicoRio
[+5 18.06.13]
[+1 20.07.13]

Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
Дааа - буду краток, вы просто не правильно понимаете данную строку кода.
В ней идет чтение из co и запись в addinfo (который действительно пустой, т.к. только что создан).

В принципе достаточно того, что я сказал, что функция полностью рабочая
когда две строки (в нижней части) закоментированы.

Старый 12.12.2012, 19:48
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 16  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от ZicoRio Посмотреть сообщение
улыбнуло Ж))

....
Код AS3:
addilen=10;
txt=co.readUTFBytes(addilen);
var ty:int=int(txt.substr(5,1));
if (ty===1){
	addinfo.writeUTFBytes('AAA');//<=== проверил - все ок
}else if(ty===2){
	addinfo.writeUTFBytes('BBB');//<=== проверил - все ок
}
addinfo.writeBytes(co,addilen);//<=== виснет вот тут
....
Чему равен addilen? Что значит виснет? Ошибка какая-то? Какая?
Цитата:
а кто-нить попробовал у себя такой код играет или нет?/
Работает.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.12.2012, 05:12
ZicoRio вне форума Посмотреть профиль Отправить личное сообщение для ZicoRio Найти все сообщения от ZicoRio
  № 17  
Ответить с цитированием
ZicoRio
[+5 18.06.13]
[+1 20.07.13]

Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
iNils - вот еще раз полностью функция.
Если строки НЕ закомментированы, то в указанном месте просто виснет (прекращает выполнятся код)
- без ошибок, без каких-то сообщений.
Пробовал try - catch - ничего не выдает.
Если две строки ЗАкомментированы (как показано), то все работает.

co - на входе примерно 2KB.
Flash Player (debug версия) 11,5,502,110

Код AS3:
private function func1(co:ByteArray):ByteArray{
        var addinfo:ByteArray=new ByteArray();
        co.readBytes(addinfo,0,22);
        co.position=0;
        if (addinfo.toString().substr(0,2)=='55'){
                var addicontlen:String=addinfo.toString().substr(2,10);
                addinfo.clear();
                var addilen:uint=22;
                for(var i:int=0;i<10;i++){
                        if (addicontlen.substr(i,1)!=='0'){
                                addilen+=uint(addicontlen.substr(i));
                                break;
                        }
                }
                ob_req.txt=co.readUTFBytes(addilen);
                var ty:int=int(ob_req.txt.substr(12,1));
                if (ty===1){
                        //addinfo.writeUTFBytes('AAA');
                }else if(ty===2){
                        //addinfo.writeUTFBytes('BBB');
                }
                addinfo.writeBytes(co,addilen);// <=виснет здесь если раскомментировать строки выше
                return addinfo;
        }
        ob_req.txt='';
        return co;
}
addilen - в итоге всегда разный, но к примеру 425 байтов
Просьба прогнать у себя именно данную функцию и сообщить
работает ли если строки РАСкомментированы.

Старый 13.12.2012, 05:29
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 18  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Работает.
Передаваемый в функцию байт массив содержал строку 55_qwertyuio1_asdfghjk_zxcvbnm, функция вернула AAA_zxcvbnm. Если передавать 55_qwertyuio2_asdfghjk_zxcvbnm, то вернет BBB_zxcvbnm.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.12.2012, 06:48
ZicoRio вне форума Посмотреть профиль Отправить личное сообщение для ZicoRio Найти все сообщения от ZicoRio
  № 19  
Ответить с цитированием
ZicoRio
[+5 18.06.13]
[+1 20.07.13]

Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
Действительно спасибо! что потестили, данный функционал мне шипко
нужен - может при моих размерах массива глючит плейер, буду разбираться.
Еще раз спасибо!

Добавлено через 30 минут
С небольшими строчками (массивами байтов) действительно все правильно работает
а с моими размерами - глюк.
Вот такая вот жалость...(

Старый 13.12.2012, 08:52
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 20  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
А сколько байт длина?

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.