如何将html放在事件处理程序中

时间:2013-06-05 22:52:53

标签: flash flex actionscript mxml

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

如何在处理程序中放置一条html消息,因为我得到一个解析器的错误,说明内部点击处理程序没有<个符号

4 个答案:

答案 0 :(得分:3)

在MXML语法中,转义特殊字符的工作标准方法:

  1. prefixing it with the backslash character \
  2. using "HTML Number" code或“ASCII Dec”(请参阅​​table
  3. Wrap your text in a CDATA tag
  4. e.g:

    <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>代码中编写了一个单独的监听器。

答案 1 :(得分:3)

逃离他们:

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

那应该摆脱编译器错误。不知道showMessage按钮的作用;很难说这是否会给你带来理想的结果。

答案 2 :(得分:1)

您也可以这样调用您的功能。

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

答案 3 :(得分: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"/>