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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.01.2011, 13:32
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 11  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Сообщение от etc Посмотреть сообщение
Код AS3:
for (var key:Object in dict) delete dict[key];
Ни на Dictionary, ни на Object багу не воспроизвел - проверил на другой версии флешплеера - резаультата нет.
Похоже, все-таки загнался в тесте.

Значит буду продолжать юзать этот подход (с вычисткой в цикле).
Но Array использовать для хеша НЕ буду (на нём бага воспроизводтися на раз).

P.S. Кстати Array - вообще опасная штука для хеша - на больших значениях числовых ключей можно получить большое потребление памяти на ровном месте с тормазами (само присвоение небольших НЕотрицательных числовых ключей просто побыстрее работает).


Последний раз редактировалось expl; 23.01.2011 в 13:37.
Старый 23.01.2011, 13:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
В моём случае ключ не строковый.

Старый 23.01.2011, 13:41
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 13  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
да и со строковым и не со строковым пытался - бага не воспроизводится

etc, а что, тебе удалось воспроизвести багу со строковым ключом? Или ловил в приложении ее?


Последний раз редактировалось expl; 23.01.2011 в 13:44.
Старый 23.01.2011, 13:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я не понял, о каком баге вообще речь. for in-ом очищаются все динамические поля, если нет скрытых.

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

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
как я вообще понял для работы с любыми обьектами в ac3 все очень даже грустно
того качественного контроля как в С++ нет и думаю не будет.
Так что
Код AS3:
var _ar:Array = new Array(0);
_ar = null;
var _ar:Array = new Array(2);
как я понял , нужно присвоить 0 и его не использовать (то бишь на нем активных ссылок)
то потом мусорщик его захарчит.

А так нужно по мудрить и по тестить.
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 23.01.2011, 13:59
kyzi007 вне форума Посмотреть профиль Отправить личное сообщение для kyzi007 Найти все сообщения от kyzi007
  № 16  
Ответить с цитированием
kyzi007

Регистрация: Nov 2008
Сообщений: 78
Если речь о производительности может попробовать векторы?


Последний раз редактировалось iNils; 23.01.2011 в 15:07.
Старый 23.01.2011, 14:17
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 17  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
ну если учесть что я прожженный С++ (5лет)
я даже и не рассматривал array а делаю
к примеру

Код AS3:
private var m_map:Vector.<CBall> = new Vector.<CBall>(MAX_ELEMENTS, true);
array слишком по мне жруч
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 23.01.2011, 14:29
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 18  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Я не понял, о каком баге вообще речь. for in-ом очищаются все динамические поля, если нет скрытых.
Баг, воспроизведение, которого я привел в первом посте для Array (набор обходимых элементов изменяется при их удалении во время обхода), и про который думал, что появляется и для Object и для Dictionary.

Кстати с нетипизированным ключом обходить Array тоже пытался - и тоже упало.

Цитата:
array слишком по мне жруч
Да жруч он только раза в 1,5 - 2,5 сильнее чем Vector. У него другие недостаки:
- отсутствие типизации;
- если его использовать как ассоциативный - обладает совершенно невменяемым поведением, чтобы описать это поведение одной страницы документации не хватит (но, вобщем, как ассоциативный его лучше и не использовать, а юзать Dictionary/Object - уже 2-й раз убеждаюсь)

Цитата:
Если речь о производительности может попробовать вектры?
Мы говорим о хеше/ассоциативном массиве, векторы этого не реализуют


Последний раз редактировалось expl; 23.01.2011 в 14:43.
Старый 23.01.2011, 14:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 19  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от expl Посмотреть сообщение
Баг, воспроизведение, которого я привел в первом посте для Array (набор обходимых элементов изменяется при их удалении во время обхода), и про который думал, что появляется и для Object и для Dictionary.
А это не баг, это неверное использование for in. При удалении ключей происходит смещение индексов и появляются пропуски ключей.

Старый 23.01.2011, 14:46
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 20  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
А это не баг, это неверное использование for in.
Для объекта/словаря можно, а для массива - нельзя - ктож знал?

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

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

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


 


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


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