Почему свойство htmltextbox .selectable = false не работает на actioncript 3? - PullRequest
0 голосов
/ 06 января 2011

У меня есть этот код:

function displayHTML(htmlText:String):void
  {
   var mcArray:Array = new Array();

   for (var i:int=0; i<20; i++) {
      var caja1:HTMLTextBlock = new HTMLTextBlock();
      dragMe.addChild(caja1);
      mcArray[i] = caja1;
   }

   for (var i:int=0; i<20; i++) {   
   mcArray[i].blockWidth = 720;
   mcArray[i].textStyleSheet = textStyleSheet;
   mcArray[i].setHTML(htmlText);
   mcArray[i].selectable = false; 
   mcArray[i].x = 0;
   mcArray[i].y = i*(mcArray[i].height+40);
   }
  }

Но выбираемое свойство (mcArray [i] .selectable = false;), кажется, работает не так, как я хочу, консоль флэш-памяти выдает эту ошибку: TypeError:Ошибка # 1010: термин не определен и не имеет свойств.

Без этой строки кода все работает нормально, но я не хочу, чтобы пользователь выбирал текст.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 06 января 2011

Этот вопрос касается класса HTMLTextBlock из этого урока, который я написал: http://active.tutsplus.com/tutorials/design/master-html-formatted-text-in-flash/

Текстовое поле, которое вы пытаетесь настроить, на самом деле является дочерним по отношению к классу HTMLTextBlock. Есть несколько способов сделать то, что вы пытаетесь сделать. Вероятно, лучшим способом было бы добавить новый метод в класс HTMLTextBlock, который устанавливает свойство.

Добавьте этот метод после метода setHTML ():

public function setSelectable(value:Boolean):void
{
    htmlTextField.selectable = value;
}

Затем в функции displayHTML выполните:

mcArray[i].setSelectable(false);
1 голос
/ 06 января 2011

HTMLTextBlock не является основным классом?Расширяет ли он TextField или оборачивает TextField, вам нужно будет получить указатель на свойство текстового поля, если оно существует, и установить там флаг выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...