返回织梦建站服务网首页 业界新闻 教程文档 资源下载 酷站鉴赏 免费服务 站长工具
织梦建站工作室
织梦建站论坛
载入中…
专题栏目
最新热门
>>更多热门...  
最新推荐
>>更多推荐...  
  您现在的位置: 织梦建站服务网 >> 建站教程 >> WEB多媒体 >> Flash >> 教程正文
AS3 技巧和提示            
HITS: TIME:2007-4-27 9:58:03 AUTHOR:mirycat URL:蓝色理想
CONTENT INTRODUCE :
放大文字  缩小文字  发表评论  加入站内收藏夹  告诉好友  打印模式  关闭窗口 

原文见 http://www.kirupa.com/forum/showthread.php?p=1876826

在 AS3 中你可以通过 Stage 类动态改变影片的帧速
所有的 DisplayObject 都有一个 stage 属性, 通过他可以访问当前 DisplayObject 所在实例的 Stage.
修改 stage 的 frameRate 属性就可以改变帧速, 他的值可以是 0.01 ~ 1000

package {
 import flash.display.Sprite;

 public class MySprite extends Sprite
 {
  public function MySprite () {
   // 修改影片帧速到 12 帧 / 秒
   stage.frameRate = 12;
  }
 }
}

还记得 as2 中被大量使用的 Delegate 么, as3 中他已经不那么重要了, 因为函数可以记住自己的作用域
as2 的例子:

import mx.utils.Delegate;
var obj = new Object();
obj.traceThis = traceThis;
obj.traceThis(); // 输出 true, 也就是 obj 自己
obj.traceThis = Delegate.create(this, traceThis);
obj.traceThis(); // 输出 false, 因为我们已经手动把函数作用域指向到了 _root, (as3 中是 Timeline0)

function traceThis () {
 trace(this == obj);
}

as3 的例子, 在 flash 9 alpha 中测试

var obj = new Object();
obj.traceThis = traceThis;
obj.traceThis(); // 输出 false, 没有作用域的问题了~

function traceThis () {
 trace(this == obj);
}

与 as1, 2 一样, as3 也有一套画图接口 (Drawing API) 使得我们能够动态的使用 as 在 Sprite* 和 MovieClip 中画矢量图。

不过在 as3 中这些方法都没有被定义在 DisplayObject 中 (如 Sprite, MovieClip 等), 而是在他们的 graphics (flash.display.Graphic) 属性中, 这个 graphics 相当于一个动态绘图层。

同时 as3 也提供了一组让我们更方便绘制矩形, 圆, 甚至远郊边框的函数, 他们包含

  • drawCircle(x:Number, y:Number, radius:Number):void
  • drawEllipse(x:Number, y:Number, width:Number, height:Number):void
  • drawRect(x:Number, y:Number, width:Number, height:Number):void
  • drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void

绘制一个蓝色圆角边框:

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF);
square.graphics.drawRoundRect(0, 0, 100, 50, 10, 10);
square.graphics.endFill();
addChild(square);

Sprite 是 MovieClip 的简化版本, 可以理解成只有一帧的 MovieClip 。

as3 中新增了一些变量类型, 基本类型 (顶级类, Top Level Class) 包括简单类型:

  • Boolean
  • int
  • null
  • Number
  • String
  • uint
  • undefined

复合类型 (或许叫做类会比较顺口):

  • Object
  • Array
  • Date
  • Error
  • Function
  • RegExp
  • XML
  • XMLList

另外还有一些分类到各个包中的诸如 Matrix (flash.geom.Matrix), Shape (flash.display.Shape), URLRequest (flash.net.URLRequest), 等等

一些提示:

  • Void 类型在 as3 中使用小写, Void -> void
  • 新增了万能类型 * 用来表示所有类型. 如果你没有为变量指定类型, 那么他即是默认类型。

var anyThing:*

  • XML 类不再是 as1, 2 中的 XML. as3 中的 XML 基于 E4X, 允许你像操作普通变量一样操作 XML (置顶帖中的教程有介绍)
  • 新增 int 和 uint 类型, 他们在数组遍历等不需要小数的场合相当有用. int 类型会比使用 Number 快一点点, 而 uint 通常用来表示颜值等 (据测试 uint 比 Number 慢, int 比 Number 快不了多少)

教程录入:jerome    责任编辑:jerome 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

    相关教程
    浅谈flash web的结构
    A*寻路,二叉堆优化及AS3实现
    Apollo是危险的吗?
    Apollo 开发技巧
    APOLLO 未来畅想
    Flash纯脚本生成饼图
    基于flash的360虚拟现实引擎实现
    XML动态菜单
    Flash破解与加密
    Flash AS2 中的拍照图片无损压缩
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    湘ICP备05010790号 {$Wap}
    关于我们 | 版本历史 | 联系方法 | 隐私条例 | 链接我们 | 广告服务 | 常见问题 | 友情链接 | 网站公告 | 设为首页 | 收藏本站
    Copyright © 2001-2006 17zm.NET All Rights Reserved.  织梦建站工作室[织梦建站工作室]™荣誉出品. Since 2001