zoukankan      html  css  js  c++  java
  • flash学习笔记(四)事件机制和用户界面学习

    第九章 事件处理和基本的交互控制

    1.        基本事件处理:

    事件源eventSource、事件名eventName、响应eventResponse

    Function eventResponse(eventObject:EventType):void{

     //这里是为响应事件的步骤

    }

    eventSource.assEventListener(Event_name,eventResponse);

    对于eventObject,对象变量

    2.        currentTarget和target属性:

    currentTarget:代表当前正在操作对象àevt.currentTarget.name

    target:当对象重合时,可能触发其子对象,所以会有误差,尽量使用currentTarget

    3.        addEventListener参数详解:

    addEventListener(eventName,functionName,true/false,int,true/false);

     动作,函数名,动作捕抓流活动状态,优先级,不需要时是否在内存清掉

    注意:捕获阶段捕获后就没有目标阶段,想要目标阶段必须第三个函数设置为false

          到达目标阶段后必须冒泡

    4.        可以用的基本交互事件:

    Click/doubleClick/focusIn/focusOut/keyDown/keyFocusChage/mouseMove/MouuseOut/mouseOver/mouseUp/mouseWheel/rollout/rollOcer/tabChildrenChange/tabEnabledChage/tabIndexChang

    5.        相应键盘事件:

    1>    functionkeyhandler(evt:KeyboardEvent):void{

     evt.charCode:按下键的字符代码

     evt.keyCode:按下键的数字代码

     evt.keyLocation:区分左shift和右shift;标准键盘和数字键盘

     evt.altKey:是否按下

     evt.ctrlKey:是否按下

     evt.shiftKey:是否按下

    }

    this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyhandler);

    2>    if(evt.keyCode== Keyboard.RIGHT)

    evt.currentTarget.x  = evt.currentTarget.x + 10;

    Stage.focus = myMovieClip;

    注意查看:Keyboard类的常数

    3>    fullScreen事件

    若要启用全屏模式,请将allowFullScreen参数添加到包含SWF文件的HTML页中的object和embed标签,同时将allowFullScreen设置为"true",如下例所示:

    <paramname="allowFullScreen"value="true"/>

    给swf增加一个全屏按钮:fullBt
    代码如下:

    fullBt.addEventListener(MouseEvent.CLICK,fullscreenshow);

    functionfullscreenshow(evt:MouseEvent):void{
    switch(stage.displayState){
    case"normal":
    stage.displayState="fullScreen";
    break;
    case"fullScreen":
    default:
    stage.displayState="normal";
    break;
    }}

    4>    组合键:evt.shiftKey&&evt.keyCode==79

    Stage.stageFocusRect = false;? 
    指定对象在具有焦点时是否显示加亮的边框。

    5>    Mouse.hide()/Mouse.show();

    6.        自定义Flash Player右键菜单:

    1>    首先实例化ContextMenuItem:用来保存每个项目

    Var myContextMenuItem:ContextMenuItem= new ContextMenuItem(caption,分割线,enabled,visible);

    2>    实例化ContextMenu:用来保存右键菜单:

    Var myContextMenu:ContextMenu =new ContextMenu();

    3>    将项目放到右键菜单中:

    myContextMenu.hideBuiltInItems();

    myContextMenu.customItems.push(myContextMenuItem);

    4>    将菜单赋给对象:

    This.contextMenu = myContextmenu;

    5>    添加监听:

    MyContextMenuItem.addEventLIstener(ContextMenuEvent.menuItemSelect,处理事件);

    第十章 设计用户界面和使用组件

    1.      使用TextField动态设置文本框失败!----第二天成功

    scroll_txt.txt.scrollV -= 1;

    当textfield转化为MC后,调用应注意子对象!

    2.      使用TextFormat动态设置文本格式:

    Var myTextFormat:TextFormat = newTextFormat();

    myTextFormat.bold = true;

    myTextField.setTextFormat(myTextFormat);

    3.      使用HTML标签动态设置文本格式:

    My_txt.htmlText = “<b>显示出粗体</b>”;

    4.      使用样式表动态设置文本格式:

    1>css和html正常编写

    2>加载并应用css:

    Var cssReq:URLRequest =new URLRequest(“myCSS.css”);

    Var cssLoader:URLLoader= new URLLoader();

    FunctiononCSSFileLoader(evt:Event):void{

     VarmyStyleSheet:StyleSheet = new StyleSheet();

      myStyleSheet.parseCss(cssLoader.data);

      main_txt.stylesheet = myStyleSheet;

    }

    cssLoader.addEventListener(Event.COMPLETE,onCssFileLoader);

    cssLoader.load(cssReq);

    3>将html文档作为XML加载,并赋给文本框:

     Var myDoc:XMLDocument= new XMLDocument ();

      myDoc.ignorewhite = true;

      myDoc.parseXML(xmlLoader.data);

      main_txt.htmlText = myDoc.toString;

    5.      动态创建和使用文本框:WordWrap:文本是否自动换行;type:是否是动态文本

    Var myTextField:TextField = newTextField();

    6.      消除嵌入字体的锯齿:TextRender

    7.      使用UIScrollBar创建滚动文本框:不能再元件上,在textField

    8.      改变组件外观:

    1>创作阶段改变

    2>运行时:component.setStyle()/getStyle()

    3>单个组件实例:instanceName.setStyle(“propertyname”,”value”);

    4>单个组件所有实例:StyleManager.setComponentStyle(Button,”textFormat”,tf);

  • 相关阅读:
    基于NFS实现多WEB服务器负载均衡
    CentOS 6编译安装lamp,并分别安装event模块方式和FPM方式的PHP
    CentOS 7 下的LAMP实现以及基于https的虚拟主机
    ssh 免密码设置失败原因总结
    任督二脉之进程管理(3)
    任督二脉之进程管理(4)
    任督二脉之进程管理(1)
    任督二脉之进程管理(2)
    VIRTIO概述和基本原理
    图解 TCMalloc
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2419262.html
Copyright © 2011-2022 走看看