2013-06-05 3 views
0
<s:Button click="showMessage('<h1>Some message</h1>')" label="Как играть?" /> 

Как поместить сообщение в формате HTML, в обработчике, потому что я получаю ошибку синтаксического анализа, который говорит, что внутри обработчики нажмите не быть < символовКак поставить HTML внутри обработчиков событий

ответ

1

Вы также можете назвать свою функцию таким образом.

<s:Button label="Как играть?" > 
     <s:click > 
      <![CDATA[ 
       showMessage('<h1>Some message</h1>'); 
      ]]> 
     </s:click> 
    </s:Button> 
+0

да мне это нравится :) –

3

В MXML-синтаксис, работать стандартные методы вылетающих специальных символов:

  1. prefixing it with the backslash character \
  2. using "HTML Number" code или также "ASCII декабря" (см table)
  3. Wrap your text in a CDATA tag.

.: например

<ns:myComp...> 
    <ns:click> 
     <![CDATA[ 
      // your AS3 code 
     ]]> 
    </ns:click> 
    <ns:htmlText> 
     <![CDATA[ 
      This is 14 point blue italic text.<br/> 
      <b><font color="#000000" size="10">text</font></b> 
     ]]> 
    </ns:htmlText> 
    ... 

И я рекомендую писать отдельный слушателя в <fx:Script> тега.

+0

на основе кода в вопросе; Я бы сказал, что у плаката есть отдельный слушатель в ' 'с именем' showMessage() '. Я не думаю, что '<' and '> 'может быть экранирован символом' \ '. – JeffryHouser

3

избежать их:

<s:Button click="showMessage('&lt;h1&gt;Some message&lt;/h1&gtl')" label="Как играть?" /> 

Это должно избавиться от ошибок компилятора. Не зная, что делает кнопка showMessage; трудно сказать, даст ли это вам желаемые результаты или нет.

0

Я не уверен, почему вы хотели бы сделать что-то подобное.

Было бы проще изменить обработчик принять дополнительные свойства:

protected function showMessage(heading:String, message:String):void { 
    var message:String = '<h1>' + heading + '</h1><p>' + message + '</p>'; 
    // do something with message. 
} 
<s:Button click="showMessage('Title', 'Custom message.')" label="Click Me"/> 
Смежные вопросы