Flex中如何在Panel控件的status文本中添加一个链接的例子

By Minidxer | April 18, 2008

接下来的例子演示了如何利用getStatusTextField()事件和mx_internal命名空间,在Flex的Panel容器的status文本中指定一个HTML格式的链接字符串。

需要注意的是:和前面的如何显示,隐藏Flex的TitleWindow容器关闭按钮(close button)的例子Flex的Alert消息框中设置icon图标的例子等一样,由于例子中用到了mx_internal命名空间(namespace),无法保证在后续版本的Flex SDK中都可以正常工作,使用的时候自己要斟酌一下。


让我们先来看一下Demo(可以右键View Source或点击这里察看源代码

下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white"
  6.         creationComplete="init();">
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import mx.core.IUITextField;
  11.             import mx.controls.Alert;
  12.  
  13.             private function init():void {
  14.                 var tf:IUITextField = panel.mx_internal::getStatusTextField();
  15.                 tf.selectable = true;
  16.                 tf.addEventListener(TextEvent.LINK, textField_link);
  17.                 tf.htmlText = "status with <a href='event:showAlert'><u>link</u></a>";
  18.  
  19.             }
  20.  
  21.             private function textField_link(evt:TextEvent):void {
  22.                 Alert.show("Success! A Panel container with a link in the status text.", evt.text);
  23.             }
  24.         ]]>
  25.     </mx:Script>
  26.  
  27.     <mx:Panel id="panel"
  28.             title="Title"
  29.             status="status with link"
  30.             width="320"
  31.             height="240">
  32.         <mx:Text text="Click the link in the Panel container's status bar to launch an Alert control."
  33.                 width="100%" selectable="false" />
  34.         <mx:ControlBar>
  35.             <mx:Text htmlText="&lt;b&gt;Note:&lt;/b&gt; The status text field must have it's selectable property set to true in order to dispatch the link event."
  36.                     width="100%" selectable="false" />
  37.         </mx:ControlBar>
  38.     </mx:Panel>
  39.  
  40. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer

Topics: Flex | 8 Comments » | 189 views Tags: , , , , , , ,

Related Post

8 comments | Add One

  1. xu - 07/23/2008 at 11:22 am

    我创建多个panel 可以动态添加链接吗?我没有添回成功

  2. Minidxer - 07/23/2008 at 11:27 am

    例子中是在creationComplete时调用init()实现的, 添加相应的事件动态调用不成功?

  3. xu - 07/23/2008 at 1:01 pm

    我在 as 中创建
    var panel:Panel=new Panel; 我怎么使用这链接呀!
    var tf:IUITextField = panel.mx_internal::getStatusTextField();
    tf

  4. xu - 07/23/2008 at 1:02 pm

    我在 as 中创建
    var panel:Panel=new Panel; 我怎么使用这链接呀!
    var tf:IUITextField = panel.mx_internal::getStatusTextField();
    tf 空对象. 我应该怎么做

  5. Minidxer - 07/23/2008 at 1:09 pm

    status在new的时候指定了吗?

    panel = new Panel();
    panel.title = “My Title”;
    panel.status = “status with link”
    panel.width = 320;
    panel.height = 240;

    var tf:IUITextField = panel.mx_internal::getStatusTextField();

  6. xu - 07/23/2008 at 1:15 pm

    我指定了.麻烦你了
    panel = new Panel();
    panel.title = name;
    panel.status = “更多”
    panel.width = 320;
    panel.height = 240;

    var tf:IUITextField = panel.mx_internal::getStatusTextField();
    if(tf!=null){
    tf.selectable=true;
    tf.addEventListener(TextEvent.LINK, oneNewsTypeNewsShow);
    tf.htmlText = “更多“;
    }

  7. xu - 07/23/2008 at 1:19 pm

    我的MSN :guangshegxu@hotmail.com

  8. Minidxer - 07/26/2008 at 12:11 am

    //panel.status = “更多”
    就可以了。

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts

赞助商链接

Archives