![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 34
|
Здравствуйте дорогие программисты.
У меня вылезает такая вот ошибка при использовании написанного мною класса: TypeError: Error #1010: Термин не определен и не имеет свойств. По всей видимости проблема в том, что при обращении к определенному свойству класса оно оказывается не определенным. Но в ошибке не пишется какое именно свойство не определено. Можно ли каким-либо образом вывести имя этого свойства? |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 34
|
Полный код ошибки:
TypeError: Error #1010: Термин не определен и не имеет свойств. at com.***.***::TextMetric() at com.***.***::ResultTextField/selectionInit() function selectionInit (e:Event) { Mertic = new TextMetric(resTF, resTF.mouseX, resTF.mouseY); if (Mertic.sentMetric == true) { //записываем номер выделенного предложения в событие var assetEvent:TextFieldEvent = new TextFieldEvent(TextFieldEvent.SENT_SELECTED); assetEvent.sentNumber = Mertic.selectedSent; dispatchEvent(assetEvent); //выделяем предложение sentenceSelect(Mertic.startSentNum, Mertic.endSentNum); } else { clearSentSelection(); } if (Mertic.wordMetric == true) { wordSelect(Mertic.startWordNum, Mertic.endWordNum); } else { clearWordSelection(); } } package com.***.*** { import flash.text.TextField; import com.***.***.WWT; public class TextMetric { var wwt:WWT = new WWT(); var sentCount:int; var startSentNum:int; var endSentNum:int; var sentMetric:Boolean = new Boolean(false); var wordMetric:Boolean = new Boolean(false); var startWordNum:int; var endWordNum:int; var selectedSent:int; const DROP_SENTENCE:RegExp = /(\?+ |\!+ |\!\?+ |\?\!+ *|\.+ |\r)/ const SHORT_WORDS:RegExp = /(Dr\. |dr\. |Mr\. |mr\. |Mrs\. |mrs\. )/ const DROP_SENT_BY_TAG:RegExp = /(<\/sent\d>)(<sent\d>)/ const DROP_SENT_BY_TAG_CORRECT:RegExp = /<\/sent\d>/ public function TextMetric (obj:TextField, x:Number, y:Number){ var array:Array = wwt.getSentArray(obj.text); var position:int = obj.getCharIndexAtPoint(x, y); var stSCh:Number = new Number(0); var enSCh:Number = new Number(array[0].length); if (position != -1) { position == 0 ? position = 1 : position = position sentCount = array.length; position++; for (var i = 0; i < sentCount; i++) { if ((stSCh < position) && (position < enSCh)) { selectedSent = i+1; break; } stSCh += array[i].length; enSCh += array[i+1].length; } position--; while (obj.text.substring(stSCh, stSCh+1) == " ") { stSCh++; } startSentNum = stSCh; endSentNum = enSCh-1; sentMetric = true; if (obj.text.substring(position, position+1) == ".") { wordMetric = false; } else { var expString:String = wwt.symbolsToSpaces(obj.text); startWordNum = expString.lastIndexOf(" ", position); startWordNum == -1 ? startWordNum = 0 : startWordNum++ endWordNum = expString.indexOf(" ", position); endWordNum == -1 ? endWordNum = obj.length : endWordNum = endWordNum wordMetric = true; } } else { wordMetric = false; sentMetric = false; } } } } |
|
|||||
|
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
объект не успевает "создастся", предлагаю подписаться на событие появления или добавления на stage. либо ловить трейсами, что долго.
|
|
|||||
|
Регистрация: Jul 2011
Сообщений: 34
|
Да. Он создается в конструкторе, так как вокруг этого текстового поля всё и крутится.
Добавлено через 1 минуту Цитата:
Добавлено через 6 минут Цитата:
Он успевает создаваться. Дело в том, что функция selectionInit() вызывается постоянно в ENTER_FRAME. она получает координаты мыши над текстовым полем, а ТеxtMetric должен получить внутри себя определенные значения. Так вот если навести мышь например на точку в конце предложения появляется ошибка о которой говорилось выше. Но что именно не нравится скрипту не понятно... По сути, всё работает замечательно (всё как надо), но хочется чтобы не было ошибок. |
|
|||||
|
вы уверены? просто судя по стеку все в TextMetric() происходит. А кроме него я не объявленных объектов не наблюдаю.
разве что array после wwt.getSentArray(obj.text); может быть null тут Цитата:
Ставлю на resTF или array
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 34
|
бывает )) (кстати очень удобная конструкция)
resTF определяется задолго до всего этого и текст в нем изначально присутствует заносится в момент определения. array так же определяется потому как является результатом дробления текста из resTF на предложения. Я прекрасно понимаю как скрипт работает и ошибку в итоге найду... По большему счету главное что я хотел узнать это то что я и спрашивал в самом начале: Можно ли каким-либо образом вывести имя так называемого "термина" на который ругается скрипт? |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|