| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
去除头部banner
修改新浪博客上面
ad4all.net美通网
RealTracker提供免
tennal 的创业经历
在线视频专访-博客
让google baidu收
关于防作弊方面,我
Flash 8 scale9Gr
Flash Banner 设计

8ball里MovieClip类的新属性----scale9Grid           

8ball里MovieClip类的新属性----scale9Grid

作者:佚名 来源:闪吧 作者: tcper 更新:2007-1-13 20:46:05 错误报告 我要投稿
  先看帮助文件,本人英语水平有限,看不懂请自行猜测或者对照原文。
scale9Grid (MovieClip.scale9Grid property)
public scale9Grid : Rectangle(矩形)
The rectangular region that defines the nine scaling regions for the movie clip. If set to null, the entire movie clip scales normally when any scale transformation is applied.
/*矩形区域为movie clip定义了9个缩放区域。如果这个值被设为null,则整个movie clip在任何缩放转换被应用时,将会被正常缩放。*/
When a scale9Grid property is defined for a movie clip, the movie clip is divided into a grid with nine regions, based on the scale9Grid rectangle, which defines the center region of the grid.
/*当一个movie clip被定义了一个scale9Grid,这个movie clip将在scale9Grid定义的中心区域栅格的基础上被分成一个包含9个区域的栅格。*/
  • The area in the upper-left corner outside the rectangle
  • The area above the rectangle
  • The area in the upper-right corner outside the rectangle
  • The area to the left of the rectangle
  • The area to the right of the rectangle
  • The area in the lower-left corner outside the rectangle
  • The area below the rectangle
  • The area in the lower-right corner outside the rectangle
  • //几个区域的位置。

    You can think of the eight regions outside of the center (defined by the rectangle) as being like a picture frame that has special rules applied to it when the movie clip is scaled.
    //你可以想想这处于中心周围的8个区域(矩形)就像一个图片帧当movie clip被缩放时被应用了特殊的规则。
    When the scale9Grid property is set and a movie clip is scaled, all text and child movie clips scale normally, regardless of which regions of the scale9 grid they are located in
    //当一个movie clip被设置了scale9Grid属性而且被缩放时,movie clip内部的所有text和子movie clip将同时被正常缩放,而无需关心那9个区域具体在哪里。
    ----------------

    MovieClip类有了scale9Grid属性让我们可以做出更加自由、交互性更强的作品,活活。

    给scale9framedpicture.fla的AS加上注释,是翻译的。

    Stage.scaleMode = ’noScale’;
    /*
    9-slice scaling grids applied manually in movie clip symbol
    using constant border width. Scaling the image will cause
    the border within that picture to retain that width
    9-slice (9-薄片)手动缩放使用常量边界宽度栅格应用于movie clip symbol
    缩放图片将导致边界进入图片内部以保持边界宽度。
    */
    var border = picture_mc.scale9Grid.x; // start of scale9Grid x gives border size (since constant)
    //scale9Grid.x的属性赋予边界尺寸。
    // a "manipulate" point is now created to help in determining how the
    // image is being scaled when clicked. if scaling left, x will be -1
    // if scaling right, x will be +1 and if no x scaling is being done,
    // x will be 0; the same applies to y.
    //现在创建一个操作点帮助确定当图片被点击时是怎样被缩放的。
    //如果向左缩放,则x是-1,如果向右缩放,则x是+1,如果没有x轴缩放,则x是0
    //同样应用于Y轴。
    var manipulate = new flash.geom.Point(0,0);
    // two mouse variables (old & new) are used to store the
    // location of the mouse for scaling. These are compared
    // when scaling to see how far the mouse has moved
    //两个鼠标变量(old&new)将用来保存缩放时鼠标的位置
    //当进行缩放时它们用来比较,让我们知道鼠标移动了多远。
    //flash.geom.Point是Object类的子类,用于定义2维平面坐标,这里不作介绍。
    var old_mouse;
    var new_mouse;
    // picture is pressed and being scaled (or moved)
    //当图片被点击和缩放(或移动)。
    picture_mc.onPress = function(){

    // find the bounds of the picture clip
    // this will be used to compare with the
    // border property defined earlier to see
    // where the picture is being clicked
    //查找图片剪辑的范围,这个将用来和边界属性比较得出图片哪里被点击了。
    var bounds = this.getBounds(this._parent);

    // update manipulate’s x property depending on
    // whether or not the user clicked the left or
    // right borders
    //根据使用者是否点击左边或右边边界更新操作点X属性
    if (_xmouse < bounds.xMin + border) manipulate.x = -1;
    else if (_xmouse > bounds.xMax - border) manipulate.x = 1;
    else manipulate.x = 0;

    // update manipulate’s y property depending on
    // whether or not the user clicked the top or
    // bottom borders
    //根据使用者是否点击顶部或底部边界更新操作点Y属性
    if (_ymouse < bounds.yMin + border) manipulate.y = -1;
    else if (_ymouse > bounds.yMax - border) manipulate.y = 1;
    else manipulate.y = 0;

    // record the mouse position
    //记录鼠标坐标。
    old_mouse = new flash.geom.Point(_xmouse, _ymouse);

    // set the onMouseMove event to scale when the mouse is moved
    //设置onMouseMove事件用来缩放图片。
    this.onMouseMove = scalePictureMouseMove;
    }
    // delete the mouse move when released
    //当鼠标离开MC时删除onMouseMove事件。
    picture_mc.onRelease = picture_mc.onReleaseOutside = function(){
    delete this.onMouseMove;
    }
    // when moving the mouse in scaling or moving the picture
    //设置鼠标缩放、移动方法。
    function scalePictureMouseMove(){

    // record the current mouse position
    //记录鼠标当前坐标
    new_mouse = new flash.geom.Point(_xmouse, _ymouse);

    // find the difference between the old mouse
    // position and the new one
    //取得鼠标移动坐标差值
    var diff_mouse = new_mouse.subtract(old_mouse);

    // adjust the width and height of the picture
    // the use of manipulate makes this easy allowing
    // you to just multiply it by the difference
    // in mouse position. if the user did not click
    // on a border, manipulate would be 0 and there
    // would be no change
    //调节图片宽度&高度。
    //使用操作点可以轻易的允许你只要把鼠标坐标差值乘以它。
    //如果使用者没有点击边界,那么操作点将一直是0而不会改变。
    this._width += manipulate.x * diff_mouse.x;
    this._height += manipulate.y * diff_mouse.y;

    // determine if the user clicked on a border
    // if not, the user is dragging (moving) the image
    //确认使用者点击了边界,如果没有则使用者在拖动图片。
    var isDragging = Boolean(manipulate.x == 0 && manipulate.y == 0);

    // if the user is scaling left or up from a left
    // or top border, or if the user is dragging the
    // picture, offset the x and/or y position
    // of the picture to compensate
    //如果使用者点击左边界向左缩放或点击顶边界向上缩放,
    //或者使用者正在拖动图片,偏移图片的X&/或Y坐标以平衡。
    if (manipulate.x < 0 || isDragging) this._x += diff_mouse.x;
    if (manipulate.y < 0 || isDragging) this._y += diff_mouse.y;

    // set the old mouse to the current mouse so that it
    // can be used for the next onMouseMove event
    //设置old_mouse变量为当前值,以用于下一个onMouseMove事件。
    old_mouse = new_mouse;
    }
    文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。