Я делаю RTE во Flex и пытаюсь сделать кнопки форматирования текста.
<s:ToggleButton id="boldBtn" width="50" height="50" label="B" click="boldBtn_clickHandler(event)" color="#000000" fontWeight="bold"/>
и мой код
protected function boldBtn_clickHandler(event:MouseEvent):void
{
var txtLayFmt:TextLayoutFormat = mainTextField.getFormatOfRange(null,
mainTextField.selectionAnchorPosition,
mainTextField.selectionActivePosition);
txtLayFmt.fontWeight = (txtLayFmt.fontWeight == FontWeight.BOLD) ? FontWeight.NORMAL : FontWeight.BOLD; **// Causing the NULL Pointer exception**
mainTextField.setFormatOfRange(txtLayFmt,
mainTextField.selectionAnchorPosition,
mainTextField.selectionActivePosition);
mainTextField.setFocus();
}
Когда я набираю текст в TextArea и выбираю его, затем нажимаю жирный шрифт, я получаю сообщение «Не могу получить доступ к свойству или методу нулевой ссылки на объект». Если я закомментирую txtLayFmt.fontWeight = (txtLayFmt.fontWeight == FontWeight.BOLD)? FontWeight.NORMAL : FontWeight.BOLD; программа не падает, так что это кажется оскорбительной строкой, но я не понимаю, почему.
ИЗМЕНИТЬ Сейчас я пробую этот код. Он работает, когда я использую его в настольном приложении, но когда я помещаю его в мобильный проект, он не работает. Любые идеи?
......
private function btnBold_click(evt:MouseEvent):void {
trace("Clicked"); // Traces to output ok
var styleObj:TextLayoutFormat = new TextLayoutFormat();
styleObj.fontWeight = FontWeight.BOLD;
mainTextField.setFormatOfRange(styleObj);
}
Что не так с этим кодом?