最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flash Actionscript 優(yōu)化指南

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-06 01:25:37   作者:佚名   我要評論
第一章 AS3的一些優(yōu)化計算方法 用乘法來代替除法(當除數(shù)可轉(zhuǎn)化為有限數(shù)的時候)。比如var n:Number = value * 0.5;要比var n:Number = value / 2;快。但差別并不是很大。只有在需要大量計算情況下,比如3D引擎中差別才比較明顯。 用位運算代替除2或乘2。比如10>
第一章 AS3的一些優(yōu)化計算方法
    用乘法來代替除法(當除數(shù)可轉(zhuǎn)化為有限數(shù)的時候)。比如var n:Number = value * 0.5;要比var n:Number = value / 2;快。但差別并不是很大。只有在需要大量計算情況下,比如3D引擎中差別才比較明顯。 用位運算代替除2或乘2。比如10>>1要比10*2快,而10<<1要比10*2快。從測試來看位運算幾乎比乘除快一倍,但是一般情況下,我們不能選擇位運算,比如我們就不能用13>>1來代替13/2,盡管前者比后者運算速度更快,但2者的運算結(jié)果卻不一樣。所以還是要看具體情況。 用unit()或int()代替取整運算Math.floor()和Math.ceil()。比如var test:uint = uint(1.5);要比var test:Number = Math.floor(1.5);快;而var test:uint = uint(1.5) 1;要比var test:Number = Math.ceil(1.5);也快。如果是Math.floor(),還可以用位運算(>>0)來代替。比如var test:uint =1.5>>0,比unit()或int()更快。 用乘-1來代替Math.abs()方法。比如var nn:Number = -23;var test:Number= nn < 0 ? nn * -1 : nn;要比var nn:Number = -23;var test:Number = Math.abs(nn);快。當然還有更多的優(yōu)化計算的方法。一般來說,低級運算要比高級運算速度;內(nèi)部方法比調(diào)用其他方法速度快。另外要注意的是,這些方法有的時候可能并一定適用。
第二章 Actionscript 優(yōu)化指南
原著 Marco Lapi,alias Lapo, aw譯
在這篇文章中,我們將討論多種優(yōu)化 Actionscript 代碼的方法.此外我們也針對一些典型的游戲代碼進行了系列測試,來最大限度的發(fā)掘、提高Flash播放器的性能。何時進行優(yōu)化對現(xiàn)有程序進行優(yōu)化的過程,有時十分的冗長與困難,這與原始代碼的非優(yōu)化程度有關(guān),所以在投入大量時間進行代碼優(yōu)化之前,最重要的是要估計出要在什么地方對代碼做出修改或替換。
一個游戲代碼的最重要的部分就是主循環(huán)體,通常情況下該循環(huán)體要在flash的每一幀上執(zhí)行,并控制游戲中的角色屬性和重要的數(shù)據(jù)參數(shù)。而對于主循環(huán)體以外的部分,也可能是次要循環(huán)部分,同樣要注意是給其否分配了過多的資源,而沒有分配給那些更需要資源的核心部分。
通過積累在各處節(jié)約出來的時間(可能每處僅僅是幾個毫秒),您會明顯發(fā)現(xiàn)自己的swf運行得更加穩(wěn)定,并且游戲感也大大加強。
簡潔與高效的代碼
書寫出十分簡潔、可以再次調(diào)用的代碼(有時可能是面向?qū)ο蟮?是一項精細的工作,但這需要多年的編程經(jīng)驗。對于OOP(object oriented programming,面向?qū)ο蟮某绦蛟O計),有些場合根本利用不到它的優(yōu)勢,這使得它顯得十分奢侈。在有限的資源條件下(可能是flash播放器的原因),通過更先進的方法,像剛剛提到的OOP,就可能反而導致令人不滿意的結(jié)果。
我們并不是說OOP對游戲編程不好,只是在某些場合它顯得過于奢侈和多余。畢竟有時候“傳統(tǒng)的方法”卻能得到更好的結(jié)果。大體而言,用OOP是比較好的,因為它讓代碼維護更加簡單。但在后文中,你會看到有時為了充分發(fā)揮flashplayer性能,而不采用OOP技術(shù)。例如:處理快速滾動或者計算十分復雜的數(shù)學問題。基本的優(yōu)化一提及代碼優(yōu)化,我們馬上會聯(lián)想到執(zhí)行速度的改進,而很少去考慮系統(tǒng)資源的分配。這是因為當今,即使是將被淘汰的計算機,都有足夠的內(nèi)存來運行我們大部分的flash游戲(128M的內(nèi)存足以滿足大多數(shù)情況的需要,況且,512M的內(nèi)存是當今新電腦的基本配置)
變量
在各種重要的代碼優(yōu)化手段中,有這么一條:在定義局部變量的時候,一定要用關(guān)鍵字var來定義,因為在Flash播放器中,局部變量的運行速度更快,而且在他們的作用域外是不耗占系統(tǒng)資源的。
aw附:var變量僅僅在花括號對中才有“生命”,個人認為沒有系統(tǒng)學過編程的人容易出錯的一個地方:

awMC.onLoad = function(){
var aw = 1;
}
awMC.onEnterFrame = function(){
//不存在aw這個變量
}
一段非優(yōu)化代碼:
function doSomething()
{
mx = 100
my = 100
ar = new Array()
for (y=0; y < my; y )
{
for (x=0; x < mx; x )
{
i = (y * mx) x
arr[i] = i
}
}
return arr
}

這段代碼中,并未聲明函數(shù)體內(nèi)的那些變量(那些僅僅在函數(shù)內(nèi)使用的變量)為局部變量,這使得這些變量被播放器調(diào)用的速度更慢,并且在函數(shù)執(zhí)行完畢的時候仍然耗占系統(tǒng)資源。
下面列出的是經(jīng)過改進的同樣功能的代碼:

function doSomething()
{
var mx = 100
var my = 100
var ar = new Array()
for (var y=0; y < my; y )
{
for (var x=0; x < mx; x )
{
var i = (y * mx) x
arr[i] = i
}
}
return arr
}

這樣一來所有的變量均被定義為了局部變量,他們能夠更快地被播放器調(diào)用。這一點在函數(shù)大量(10,000次)循環(huán)運行時顯得尤為重要!當一個函數(shù)調(diào)用結(jié)束的時候,相應的局部變量都會被銷毀,并且釋放出他們占有的系統(tǒng)資源。

相關(guān)文章

  • flash cs6鼠標跟隨效果實現(xiàn)代碼分享

    flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下
    2019-05-19
  • Flash cs6怎么使用代碼輸入中英文文本?

    Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定義抽象類和抽象?

    flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://m.fzitv.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2018-01-25
  • Flash中怎么實現(xiàn)鼠標點擊決定圖像位置?

    本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學習
    2018-01-12
  • Flash中如何用代碼將圖片放在自己想要的舞臺位置?

    本教程教腳本之家的ActionScript教程學習者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學習
    2017-11-20
  • 在Flash CS6中使用with函數(shù)繪制背景圖教程

    本教程教腳本之家的ActionScript教程學習者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學習
    2017-11-18
  • Flash怎么設置元件坐標?flash使用代碼設置元件的坐標的教程

    Flash怎么設置元件坐標?flash中導如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設置元件的坐標的教程,需要的朋友可以參考下
    2017-10-11
  • Flash怎么制作來回搖擺的花朵的動畫?

    Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下
    2017-05-23
  • Flash怎么制作流動七彩色的文字?

    Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2017-04-23

最新評論

大宁县| 潜山县| 昭觉县| 宜春市| 河西区| 鄂托克旗| 华蓥市| 华亭县| 长丰县| 天台县| 抚州市| 旬阳县| 霍城县| 淮北市| 建德市| 泰州市| 景谷| 泗洪县| 石家庄市| 河间市| 工布江达县| 汽车| 乌拉特后旗| 黑龙江省| 辰溪县| 盐城市| 北川| 博湖县| 永宁县| 三江| 玉树县| 波密县| 宿迁市| 金昌市| 肥东县| 晴隆县| 灌云县| 和政县| 茂名市| 中西区| 布拖县|