為AS2 0添磚加瓦 編寫類擴充套件

2021-08-25 03:24:06 字數 2240 閱讀 2823

[1b][序]

[/1b]基於類的程式設計,使得我們可以更加輕鬆地定製屬於自己的物件,同時也給已有類的擴充套件提供了極大的方便。

現在我們可以通過extends關鍵字實現繼承,並通過import來匯入位於其他.as檔案中的類。

在這些基礎之上,我們完全可以發展自己的想象力,改進已有的as,使之成為一款適合自己的指令碼語言。!

我和花兄的這兩篇教程,算是打了個頭炮,雖然簡單,但是希望能起到拋磚引玉的作用。

p.s.對於那些有價值的擴充套件類(常用且通用性強),藍色老大會適當做出獎勵哦 :d:d

[1b][正文][/1b]

下面這個例子非常簡單,它向你說明如何擴充套件moiveclip類,加入自己編寫的方法。

如果你是一名數學老師,那麼三角函式的影象肯定是你經常要用到的東西,下面我們就來擴充套件movieclip類,

增加乙個繪製正/余弦三角函式影象的方法。

第一步,編寫類定義檔案:

首先,新建乙個action script file,命名為:jc_mcextend.as。

因為在這個類中,我們不需要建構函式(只是對moiveclip乙個擴充套件),所以這個命名可以隨意。

**拷貝框

class jc_mcextend extends movieclip //用extends來繼承movieclip類

//繪製正弦函式 y=a*sin(b*x+c)+d 的函式影象

function drawfunc(startx:number,endx:number,a:number,b:number,c:number,d:number)

}//下面同上進行方向鍵判斷

if(key.isdown(key.left ))

}//微調方向,小轉彎.

if (key.isdown(key.left) && key.isdown(key.up) && !key.isdown(key.right) && !key.isdown(key.down))

if (key.isdown(key.right) && key.isdown(key.up) && !key.isdown(key.left) && !key.isdown(key.down))

if (key.isdown(key.left) && key.isdown(key.down) && !key.isdown(key.right) && !key.isdown(key.up))

if (key.isdown(key.right) && key.isdown(key.down) && !key.isdown(key.left) && !key.isdown(key.up)) }}

[ctrl+a 全部選擇 然後拷貝]

然後建立乙個fla,在裡面建立乙個movieclip,比如汽車等要移動的物體.

ctrl+l.調出庫,點這個mc,按右鍵,選擇linkage,用於把這個mc擴充套件

成class類.

如圖所示進行設定:

[img]/uploads/allimg/080325/1648302.gif[/img]

[img]

然後.返回layer1,放入這個mc.並命名為linkage裡所取名一樣.

[img]

現在我們在layer1的第一幀裡寫上:

car.onenterframe = function()

就可以呼叫這個設定好的擴充套件類及其方法:

只要寫上3個引數變數就行

也可以先設定變數或者和輸入文字框.如:

speed =5;

w = stage.width;

h = stage.height;

car.onenterframe = function()

flash6.0做這樣乙個移動控制也很方便.可以參考flash6.0裡的幫助檔案也有乙個汽車控制,但是7.0的as2.0的目的.是能夠把**和fla盡量分開寫.指令碼被作為乙個class類.可以更好的多重利用.修改擴充套件指令碼更方便.

這個例子很簡單.只是介紹一下as2.0和as.10的區別,其實可以寫得更複雜一點.比如更好的控制微調.做flash遊戲的高手甚至可以把這個class寫成自己專用的控制引擎.

[url=示例位址[/url]

[url=

[url=

_root.attachmovie("draw","draw_mc",0);

//繪製座標軸

draw_mc.drawrf();

//繪製函式 y=30*sin(x+pi/2)的函式圖

draw_mc.drawfunc(-100,100,30,1,math.pi/2,0);

為Unity元件編寫擴充套件

這幾行 寫到乙個editor檔案中,就可以在滑鼠選中某個遊戲物件時,列印出它的路徑,let me show you the code using unityengine using unityeditor using system.collections public class toolkit e...

Swift快速為類擴充套件屬性

在程式編寫過程中,我們常常需要為已有的類擴充套件新的屬性。通常我們的解決辦法是先宣告乙個key,然後使用objc getassociatedobject和objc setassociatedobject來設定屬性。相對來說比較麻煩,因為擴充套件屬性的需求比較大,所以筆者對這兩個方法做了一些封裝,減少...

工具類編寫思路擴充套件之泛型反射

public class admindao extends basedao public class accountdao extends basedao public class basedao type types pt.getactualtypearguments 獲取資料的第乙個元素 acc...