Flash as3教程:13个Flash as3常用小技巧介绍

  发布时间:2014-06-25 11:39:52   作者:佚名   我要评论
本文向大家介绍了Flash as3常用13个小技巧,教程介绍的很详细,希望对大家有所帮助
本文向大家介绍了Flash as3常用13个小技巧,教程介绍的很详细,希望对大家有所帮助!
1:String转换成Boolean
复制代码
代码如下:
var s:String="true"
var b:Boolean = (s=="true");

2:清除所有子对象
复制代码
代码如下:
while(container.numChildren > 0)
{
container.removeChildAt(0);
}

3:对于不需要 鼠标交互的对象 设置属性 mouseChildren , mouseEnabled。
4:尽可能使用 Vector 类而不是 Array 类,Vector 类的读写访问速度比 Array 类快。
5:通过为矢量分配特定长度并将其长度设为固定值,可进一步优化。
复制代码
代码如下:
// Specify a fixed length and initialize its length
var coordinates:Vector.<Number> = new Vector.<Number>(300000, true);
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 48

6:将重用的值存储在常量,可对上面实例进一步优化。
复制代码
代码如下:
// Store the reused value to maintain code easily
const MAX_NUM:int = 300000;
var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true);
var started:Number = getTimer();
for (var i:int = 0; i< MAX_NUM; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 47

7:使用BitmapData的 lock() 和 unlock() 方法加快运行速度。
8:对于 TextField 对象,请使用 appendText() 方法,而不要使用 += 运算符。
9: 使用中括号运算符可能会降低性能。将您的引用存储在本地变量中可避免使用该运算符。以下代码示例演示了使用中括号运算符的效率很低:
复制代码
代码如下:
var lng:int = 5000;
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
for ( i = 0; i< lng; i++ )
{
arraySprite[i].x = Math.random()*stage.stageWidth;
arraySprite[i].y = Math.random()*stage.stageHeight;
arraySprite[i].alpha = Math.random();
arraySprite[i].rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 16

以下优化的版本减少了对中括号运算符的使用:
复制代码
代码如下:
var lng:int = 5000;
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
var currentSprite:Sprite;
for ( i = 0; i< lng; i++ )
{
currentSprite = arraySprite[i];
currentSprite.x = Math.random()*stage.stageWidth;
currentSprite.y = Math.random()*stage.stageHeight;
currentSprite.alpha = Math.random();
currentSprite.rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 9

10: 尽可能使用内联代码以减少代码中函数的调用次数。例如:
复制代码
代码如下:
currentValue > 0 ? currentValue : -currentValue;


比下面这种快
复制代码
代码如下:
Math.abs ( currentValue );

11:避免计算循环中的语句。
不计算循环中的语句也可实现优化。以下代码遍历数组,但未进行优化,因为在每次遍历时都需要计算数组长度:
复制代码
代码如下:
for (var i:int = 0; i< myArray.length; i++)
{
}

最好存储该值并重复使用:
复制代码
代码如下:
var lng:int = myArray.length;
for (var i:int = 0; i< lng; i++)
{
}

12:对 while 循环使用相反的顺序。
以相反顺序进行 while 循环的速度比正向循环快:
复制代码
代码如下:
var i:int = myArray.length;
while (--i > -1)
{
}

13:通常,使用尽可能低的帧速率可以提高性能。

相关文章

  • flash cs6鼠标跟随效果实现代码分享

    flash cs6想要实现鼠标跟随效果?该怎么制作呢?今天我们就来看看使用as2.0实现鼠标跟随效果的教程,需要的朋友可以参考下
    2019-05-19
  • Flash cs6怎么使用代码输入中英文文本?

    Flash cs6怎么使用代码输入中英文文本?Flash cs6中可以使用文字工具直接输入文本,也可以使用代码来输入文本,该怎么使用代码输入文本呢?请看下文详细的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定义抽象类和抽象?

    flash as3.0抽象类怎么定义? as3.0中有很多抽象类,该怎么定义抽象类和抽象方法呢?下面我们就来看看简单的例子,需要的朋友可以参考下http://www.jb51.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,该怎么使用呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2018-01-25
  • Flash中怎么实现鼠标点击决定图像位置?

    本教程给大家分享一个Flash小教程,教大家在Flash CS6中怎么实现鼠标点击决定图像位置?方法很简单,感兴趣的朋友欢迎前来一起分享学习
    2018-01-12
  • Flash中如何用代码将图片放在自己想要的舞台位置?

    本教程教脚本之家的ActionScript教程学习者在Flash中如何用代码将图片放在自己想要的舞台位置,教程讲解的详细,感兴趣的朋友欢迎前来分享学习
    2017-11-20
  • 在Flash CS6中使用with函数绘制背景图教程

    本教程教脚本之家的ActionScript教程学习者如何在Flash CS6中使用with函数绘制背景图?教程一步步讲解的挺详细,方法也不难,非常适合Flash新手入门学习
    2017-11-18
  • Flash怎么设置元件坐标?flash使用代码设置元件的坐标的教程

    Flash怎么设置元件坐标?flash中导如的元件需要添加坐标,该怎么定位元件坐标呢?下面我们就来看看flash使用代码设置元件的坐标的教程,需要的朋友可以参考下
    2017-10-11
  • Flash怎么制作来回摇摆的花朵的动画?

    Flash怎么制作来回摇摆的花朵的动画?Flash中想要给花朵制作一段摇摆的动画效果,该怎么制作呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
    2017-05-23
  • Flash怎么制作流动七彩色的文字?

    Flash怎么制作流动七彩色的文字?想要让文字动起来,该怎么使用flash给文字制作一个流动七彩色的动画呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2017-04-23

最新评论