| 网站首页 | 免费课件 | 课件源码 | 课件制作 | 课件购买 | 课件教程 | 课堂内外 | 教案 | 试卷 | 论文 | 电脑 | 教案下载 | 
 | 试卷下载 | 论文下载 | 计划总结 | 新闻资讯 | 行业范文 | 图片 | 留言 | 术语大全 | 搞笑 | 字体 | 短信 | Flash视频教程 | 
 | 办公软件视频 | 编程设计视频 | 热门视频 | 课件论坛 | 作文写作 | 
您现在的位置: 教育资源网 >> 课件教程 >> Flash教程 >> Flash组件教程 >> 正文 用户登录 新用户注册
免费精品 课件源程序下载 课件点播 课件定做 课件复原 课件制作指导 毕业设计 更多服务
Google




Flash组件教程——MX2004 组件(一):焦点管理器[FocusManager]
作者:佚名    教程来源:本站原创    点击数:    更新时间:2006-8-14         ★★★ 【字体:
 继承关系:
    UIObject--->UIComponent--->FocusManager

    包:mx.manager.FocusManager

    一个例子先

    1) 拖一个Button和一个TextInput组件到舞台上。并取名okButton和input_txt<
    2) 在时间轴第一帧写:

okButton.tabIndex=1;
input_txt.tabIndex=2;//设置两种组件的tabIndex属性,即按下tab键时的切换次序
focusManager.setFocusinput_txt);//当程序第一次运行的时候把焦点设在input_txt上
focusManager.defaultPushButton=okButton;//当用户按下Enter(windows)或Return(Macintash)时聚焦okButton
var lo=new Object();//定义一个Object对像来创建Listener
lo.click=function(evt){
  trace(evt.target+"was clicked");
}
okButton.addEventListener("click",lo);//当okButton按下时触发click事件

    FocusManager管理着所有2004中组件的焦点次序关系.它可以指定每一个组件在一个项目中的切换次序(就是当我们按tab键的时候焦点的位置)    所有的组件都继承了FocusManager类的方法和属性,但是你并不需要去用as直接的调用它。如果你没有给任何一个组件自定义焦点,那么它就会按照内定的方法来切换焦点.

    FocusManager还可以与SystemManager进行交互。它可以激活一个弹出窗口( pop_up)或者让它失去焦点。每一个对话框窗口都是一个FocusManager类的实例。因此在对话框窗口中的组件有它们自的tab次序,也就是说A弹出窗口中的tab次序与B弹出窗口的tab次序是独立的互不影响的。

    对于一种特殊情况:单选按钮(RadioButton),FocusManager是这样处理的:单选按钮有一个groupName属性,当FocusManager处理到RadioButton的时候,它会把焦点放在被选中的那个单选按钮上,(selected==true),再按tab键往下继续的时候它不会聚焦到有同一个groupName的另一个单选按钮,而是下一组具有不同groupName的单选按钮或是另外一个组件

    不管项目中的组件的tabIndex是如何定义的,只要有鼠标点击事件发生(当鼠标点击一个组件的)时候,FocusManager就会把焦点聚到被点击的那个组件上。

     FocusManager不会自动的事先给某一个组件聚焦,举例说:有A,B,C三个组件在一个项目里,当你打开这个项目的时候FocusManager不会自动的给A,或者B或者C聚焦,默认状态下是没有焦点的,除非你用FocusManager.setFocus(instanceName)去给一个组件预设焦点。

    使用焦点管理器[FocusManager]

    你可以用tabIndex属性来为项目中的组件自定义切换顺序。当用户点击tab键的时候,FocusManage会自动聚焦到比当前组件的tabIndex值大的组件上,如果tabIndex的属性值达到了最大值,那么就会返回0;举例说明:okButton是一个Button组件,input_txt是一个TextInput组件

    okButton.tabIndex=1;
    input_txt.tabIndex=2;

    那么当用户按下tab键的时候okButton就会先接受焦点,然后才是input_txt,如果希望用户按下Enter(window)或Return(Macintosh)键时聚焦到okButton,那么可以用defaultPushButton属性来实现。

focusManager.defaultPushButtonokButton
    FocusManager里有一个sendDefaultPushButtonEvent()方法需要特别说明一下。这个方法的作用是发送一个click的事件给被定义为focusManager.defaultPushButton的组件.演示一下先:

name_txt.tabIndex = 1;
password_txt.tabIndex = 2;
chb.tabIndex = 3;
submit_ib.tabIndex = 4;
focusManager.defaultPushButton = submit_ib;//这里定义了defaultPushButton属性
chbObj = new Object();
chbObj.click = function(o){
  if (chb.selected == true){
    name_txt.text = "Jody";
    password_txt.text = "foobar";
    focusManager.sendDefaultPushButtonEvent();
//当用户按下Enter(window)或Return(Macintash)的时候触发定义在submit_ib上的click事件
  }  else {
    name_txt.text = "";
    password_txt.text = "";
  }
}
chb.addEventListener("click", chbObj);
submitObj = new Object();
submitObj.click = function(o){ if (password_txt.text != "foobar"){ trace("error on submit"); } else { trace("Yeah! sendDefaultPushButtonEvent worked!"); } } submit_ib.addEventListener("click", submitObj);

    其它的关于FocusManager类的方法和属性大家可以查下Components Directory,学的方法就是从框架入手,刚开始的时候细节部分可以“不求甚解”在做东西的时候可以一边查一边用。

    这个系列是我一边翻一边加点自已的理解。不对的地方还望大家指正。

    也许这第一篇不是太引人注目,FocusManager的用法也不为大家关心,但了解一些总没有坏处:),以后会慢慢写更多更实用的:)
  .
 
 
Google
我们的服务免费课件 课件定做 毕业课件设计 免费课件(QQ:375824467/电话:13996037041)  教程录入:admin    责任编辑:admin 
------------

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

  • 上一篇教程:
  • 下一篇教程:
  •    最新热点    最新推荐    相关教程
    Flash MX 2004 教程: 使用信…
    MX2004组件(二)Accordion[折…
    MX2004组件(三):DataHolder
    MX2004组件(四) :Data Comp…
    FlashMX2004组件教程-tree组…
    FlashMX2004组件教程-tree组…
    flashMX2004组件教程-Accord…
    flashMX2004组件教程-Accord…
    flashMX2004组件教程-Menuba…
    FlashMX2004组件入门(3):Co…
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)