zoukankan      html  css  js  c++  java
  • Flash影片剪辑的属性、深度及动态控制

    Flash影片剪辑的属性、深度及动态控制

    一、影片剪辑的属性及其设置和获得。

    1、影片剪辑的15个常用属性。

    属性

    说明

    _name

    实例名称

    _x

    横坐标。在主时间轴上表示场景中的影片剪辑mc的_x坐标:mc_x;在影片剪辑自身的“动作”面板中表示_x的坐标_x;或this._x

    _Y

    纵坐标。在主时间轴上表示场景中的影片剪辑mc的_y坐标:mc_y;在影片剪辑自身的“动作”面板中表示_y的坐标_y;或this._y

    _rotation

    旋转角度。介于-1800~1800,初始为00,00~-1800逆时针旋转,00~1800顺时针旋转,超出这个范围,系统会自动调整至-1800~1800之间的范围。-1900=1700,具体应用时表示度数的单位省掉,例如:_rotation+=10;

    _aipha

    透明度范围0(完全透明)~100(完全不透明)。亦可在属性面板设置透明度

    _visible

    可见性。true(可见)或false(不可见,隐藏),例如:mc._visible=true;

    _width

    宽度

    _height

    高度

    _xscale

    水平缩放百分比。缩小的属性值范围:0~100,放大的属性值范围:>100(即大于100)。如果为负数,则在缩放的基础上进行水平或垂直翻转。

    _yscale

    垂直缩放百分比

    _xmouse

    鼠标相对影片剪辑的x坐标

    _ymouse

    鼠标相对影片剪辑的y坐标

    _parent

    该影片剪辑的父级影片剪辑

    _target

    目标路径

    _currentframe

    播放头当前所在的帧

    2、影片剪辑的15个不常用属性。

    属性

    说明

    _totalframes

    影片的总帧数

    _framesloaded

    已被加载的帧数

    _url

    影片下载swf文件的路劲

    _highquality

    影片的显示品质

    _focusrect

    获得焦点时有无黄色边框

    _soundbuftime

    声音在播放前缓冲的秒数

    enabled

    影片剪辑是否被启用

    menu

    关联的ContextMenu对象

    hitarea

    将其他影片作为按钮点击区域

    focusEnabled

    允许影片获得焦点

    Tabindex

    标示对象的tab键的切换顺序

    tabEnabled

    标示影片是否有tab键顺序

    tabChildren

    子级有无tab键顺序

    trackAsMenu

    其他键是否接收release事件

    useHandCurser

    是否显示手形光标

    3、影片剪辑属性的设置和获得。

    A、setProperty(设置影片剪辑属性)命令格式:

    setProperty(”实例名”,属性名,值);

    例如:

    setProperty(”mc”,_alpha,”30”);//将影片剪辑mc的透明度设置为30%。

    也可以用with语句来设置影片剪辑的属性:

    with (mc) {

    _x=45;

    }

    B、getProperty(获得影片剪辑属性)命令格式:

    getProperty(实例名,属性名)

    例如:

    on (press) {

    var a:Number=getProperty(mc,_x);

    var b:Number=getProperty(_root.mc,_alpha);// mc可以包含路劲

    trace(“mc的横坐标为:”+a);

    trace(“mc的透明度为:”+b);

    }

    C、这两个命令结合使用的实例(不但改变透明度、水平和垂直缩放比):

    on (release) {

    if (getProperty("mc",_alpha)!=0) {

    setProperty("mc",_alpha, getProperty("mc",_alpha)-2);

    setProperty("mc",_xscale, getProperty("mc",_xscale)+3);

    setProperty("mc",_yscale, getProperty("mc",_yscale)+3);

    }

    }

    二、影片剪辑的深度(depth)。

    影片剪辑在swf文件中是有层级叠放顺序的,就象图层的叠放顺序一样,低级隐藏在高级之下,并且每一个深度只能容纳一个影片剪辑,所以必须为每一个影片剪辑分配一个深度值,其取值范围:-16384~1048575,_root对象的深度值是-16384,以后每添加一个递增1.

    1、mc.getDepth();返回影片剪辑的深度。

    2、mc(或_root).getInstanceAtDepth(depth);返还指定深度的影片剪辑实例。

    mc(或_root)指检索范围。

    3、mc(或_root).getNextHighestDepth();返还还没有用而可用的最大深度值.

    mc(或_root)指检索范围。

    mc._parent. getNextHighestDepth()-1;返还当前已用的最大深度值。

    4、mc.swapDepths(depth或target);将mc的深度与depth深度上的影片剪辑的深度(或与targe影片剪辑的深度)进行交换。

    交换的两个影片剪辑必须位于同一父级。

    三、影片剪辑的复制和添加。

    1、对位于舞台中的影片剪辑的动态复制:dupclicateMovieClip();

    格式:

    dupclicateMovieClip(”被复制影片剪辑实例名”,”新实例名”,深度值);

    深度相同会被替换(所以要重新给一个深度值),坐标相同会被覆盖(所以要重新定坐标)。

    2、对库中的影片剪辑的动态添加:attachMovie();

    格式:

    AnyMC(指定的场景或影片剪辑). attachMovie(“要添加的影片剪辑导航符”,”指定实例名”,depth);

    如果是添加在当前的场景中:

    _root. attachMovie(“要添加的影片剪辑导航符”,”指定实例名”,depth);

    如果是添加到影片剪辑mc中:

    mc. attachMovie(“要添加的影片剪辑导航符”,”指定实例名”,depth);

    A、对库中的影片剪辑元件添加到舞台应为其设置链接标示符:

    在库中元件上右击/勾选”为ActionScript导出”/在“标示符”栏输入一个英文名字(例如:ball)/点”确定”/完成。

    B、添加到舞台的何位置?

    如果添加到舞台_root,它会位于原点(0,0),如果添加到舞台中的另一个影片剪辑处,它会位于后者的中央。

    例如:_root. attachMovie(“ball”,”ballert”,50);

    C、可以利用随机函数为添加到舞台的影片剪辑随机定位,例如:

    for (var i=0;i<10;i++) {

    _root.attachMovie("ball","ball"+i,i);

    _root["ball"+i]._x=550*Math.random();

    _root["ball"+i]._y=400*Math.random();

    }

    3、影片剪辑的动态删除:

    removeMovieClip(mc);

    mc. removeMovieClip();

    4、空影片剪辑的创建:

    AnyMC(指定创建空影片剪辑的位置).createEmptyMovieClip(”命名”,depth);

    如果是在当前的场景中创建:

    _root.createEmptyMovieClip(”命名”,depth);

    如果是在影片剪辑mc中创建:

    mc.createEmptyMovieClip(”命名”,depth);

    创建空影片剪辑ball,并往ball中添加元件water(链接标示符)代码:

    _root.createEmptyMovieClip(”ball”,0);

    ball.attachMovie("water","wat",0);

    由于depth都是0,所以添加的影片剪辑覆盖了空影片剪辑。

    四、动态创建遮罩效果setMask。

    创建:my_mc.setMask(mask_mc);

    取消:my_mc.setMask(null);

    五、影片剪辑的碰撞检测hitTest()。

    1、与某点(x,y)的碰撞(相交或重叠)检测:

    mc.hitTest(x,y,true[false]);

    如果重叠或相交则执行其后面的语句,例如:

    if (mc.hit(x,y,true)) {

    ······

    }

    2、与某个影片剪辑的碰撞(相交或重叠)检测:

    mc.hitTest(target);

    如果重叠或相交则执行其后面的语句。

  • 相关阅读:
    Linux Shell系列教程之(十七) Shell文件包含
    Linux Shell系列教程之(十六) Shell输入输出重定向
    Linux Shell系列教程之(十五) Shell函数简介
    Linux Shell系列教程之(十四) Shell Select教程
    Linux Shell系列教程之(十三)Shell分支语句case … esac教程
    Linux Shell系列教程之(十二)Shell until循环
    Linux Shell系列教程
    算法系列:链表
    C++ 系列:Boost Thread 编程指南
    C++:多线程002
  • 原文地址:https://www.cnblogs.com/hakuci/p/1831663.html
Copyright © 2011-2022 走看看