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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 25.12.2008, 08:28
jp_job вне форума Посмотреть профиль Отправить личное сообщение для jp_job Найти все сообщения от jp_job
  № 1  
jp_job

Регистрация: Oct 2006
Сообщений: 43
По умолчанию Ошибка out of bounds в TextField.

Здраствуйте. Подскажите пожалуйста в чём проблема?
уже несколько дней пытаюсь решить.

Код AS3:
RangeError: Error #2006: The supplied index is out of bounds.
	at flash.text::TextField/getLineLength()
	at org.softservice.webVideo.v2.common.visual.smiles::SmilesTextField/getNumberOfVisibleChars()[..................................\SmilesTextField.as:297]
	at org.softservice.webVideo.v2.common.visual.smiles::SmilesTextField/onScroll()[...................................\SmilesTextField.as:90]
	at flash.text::StyleSheet/_update()
	at flash.text::StyleSheet/setStyle()
	at org.softservice.webVideo.v2.common.visual.smiles::SmilesTextField2/setMyStyle()[..............................\SmilesTextField2.as:153]
	at performer_code/changeFontTypeHandler()[Z:\webvideo-chat-devel\11_11_08\Classes\performer_code.as:1200]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at org.softservice.webVideo.v2.common.visual.alerts::AlertManager/onFontAlertOK2()[...............................\AlertManager.as:871]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at terbooter.UIComponent.navigators::SettingsTabNavigator/onOkButton()[..........................\SettingsTabNavigator.as:226]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at terbooter.UIComponent::UIButton/onClick()[...............\UIButton.as:141]
 
 
код места ошибки
	private function getNumberOfVisibleChars (dt:TextField):Number
	{
		var totalChars:Number = 0;
		for (var i:Number=dt.scrollV-1; i<=dt.bottomScrollV-1; i++)
		{
                        trace("debug TX " + totalChars + " " + dt.getLineLength(i) + " " + i)
			totalChars += dt.getLineLength(i);
		}
			return totalChars;
	}
а именно в строке totalChars += dt.getLineLength(i);

по трейсу до ошибки вот что:
debug TX 0 92 33
debug TX 92 58 34
debug TX 150 78 35
debug TX 228 74 36
debug TX 302 52 37
debug TX 354 82 38
debug TX 436 72 39
debug TX 508 92 40
debug TX 600 58 41
debug TX 658 78 42
debug TX 736 74 43
debug TX 810 52 44
debug TX 862 82 45
debug TX 944 72 46
debug TX 1016 92 47
debug TX 1108 58 48
debug TX 1166 78 49
debug TX 1244 74 50
debug TX 1318 52 51
debug TX 1370 82 52
debug TX 1452 72 53
debug TX 1524 92 54
debug TX 1616 58 55



пробовал и через
try {
} catch (e:Error) {}
тогда просто эксплорер вырубается не выводя ошибку плеера на экран
Стоит Flash 9.0 r124 Debug

Не могу понять.. Возможно ли переполнение буфера? Out of bound далеко от максимального Number а также далеко от int
которое возвращает
public function getLineLength(lineIndex:int):int;


Помогите пожалуйста


Последний раз редактировалось iNils; 25.12.2008 в 13:38.
Старый 25.12.2008, 12:12
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Out of Bounds - значит, что Вы ушли за пределы "допустимого".
Код AS3:
dt.getLineLength(i);
Скажем, линии номер 200 может просто не существовать - вот плеер и вываливается.

Старый 25.12.2008, 13:11
jp_job вне форума Посмотреть профиль Отправить личное сообщение для jp_job Найти все сообщения от jp_job
  № 3  
jp_job

Регистрация: Oct 2006
Сообщений: 43
Это я понимаю. И поетому пробовал юзать TRY CATCH. Да по трейсу выведет тоже самое. но в итоге флешка срубается даже в дебаг версии и закрывается проект.
не могу придумать чтобы динамически определялось есть ли там строчка.. и поидеи должна быть потомучто наличие количества строй вычисляется по скроллу.

Добавлено через 2 минуты
тоесть вот
dt.scrollV
dt.bottomScrollV
и в итоге как я понимаю иногда получается так что значение i полученое данным методом направляет нас в строку которой нету.. Поидееже должны быть правельные значения.

Старый 25.12.2008, 13:53
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Должно работать.
Ну поставьте тупо проверку.
Код AS3:
if (i < dt.numLines)
{
 
}
А почему у Вас i и totalChars типа Number?
__________________
Griver

Старый 26.12.2008, 00:00
_Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для _Smirnoff Найти все сообщения от _Smirnoff
  № 5  
_Smirnoff
 
Аватар для _Smirnoff

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
Цитата:
Сообщение от mre Посмотреть сообщение
А почему у Вас i и totalChars типа Number?
Кстати да, старайтесь использовать везде, где только возможно int вместо Number, для так называемого "разгона" кода.
__________________
Оптимизация производительности на уровне кода

Старый 26.12.2008, 00:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от _Smirnoff Посмотреть сообщение
Кстати да, старайтесь использовать везде, где только возможно int вместо Number, для так называемого "разгона" кода.
int не даёт никаких преимуществ перед Number.

Старый 26.12.2008, 00:49
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
__etc ... ээээ .... ты уверен?

Старый 26.12.2008, 00:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Уверен. Сходу:

Код AS3:
function test():void {
	var i:uint;
	var a:int = 0;
	var b:Number = 0;
	var t:uint = getTimer();
 
	for (i = 0;i < 1e9;i++) {
		a+=1;
	}
 
	trace(getTimer() - t);  // 4379
	t = getTimer();
 
	for (i = 0;i < 1e9;i++) {
		b+=1;
	}
 
	trace(getTimer() - t); // 4279
}
test();
При таком количестве итераций можно сходу считать, что никакой разницы.


Последний раз редактировалось etc; 26.12.2008 в 00:57.
Старый 26.12.2008, 04:00
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а замени на ++

Старый 26.12.2008, 04:18
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 10  
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
был же топик где проводились тесты. и было видно что инт побыстрее будет чем намбер. но это конечно при большом количестве итераций. Но при колистве итераций до наверное миллиона разницы особой, согласен, нет.

Но мне кажется, код не пострадает, если там где нужны только целочисленные использовать инт или безнаковое целое, а где с плавающей там намбер. Это думаю может определенно в какой то степени повысить скорость работы крупных проектов. Ну и просто путаницы меньше.

вот нашел эту тему

http://www.flasher.ru/forum/showthre...=115456&page=2


Последний раз редактировалось ramshteks; 26.12.2008 в 04:27.
Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 18:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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