AS2 路徑,包與 include小結

2021-03-31 17:26:58 字數 3503 閱讀 5369

路徑,包與#include小結:

最近做了乙個比較大的東東,積累了些比較有用的as2技巧,拿出點有用的和大家分享先:

有些與腳下本字典有重複了~~~~這裡只介紹一些在用的時候需要注意的地方,不涉及oop程式設計方面的內容。

1#include

1.1#inlcude 是用來匯入外部指令碼的語句,這樣的話,

你就可以在flas內部加上一句#include "script.as",剩下的事就讓體積要小巧多的文字編輯器(如ultraedit)來完成了。

對於coder們而言,這是比較體面的一種編寫**的方式。

注意,這種方式不可以匯入類,適用於寫宣告類例項之類的**。

如這樣:

var p:test=new test();

p.main();

剩下的事就交給你的類吧,可以完全「類裡來類裡去了」~~~~

1.2可以在乙個#include 裡巢狀加#include ,從而匯入另乙個指令碼檔案.

1.3可以使用乙個資料夾來放腳下本檔案。

假定你的檔案結構是這樣安排的:

test+---//這個表示資料夾

flaswf

script+---

as.as

用#include "script/as.as" 或 #include "script/as.as"皆可匯入指令碼檔案.

2包和路徑.

其實,等到你寫包的時候,你才真正關注起路徑方面的事項。

2.1包在flash中就是以簡單的資料夾的形式形式存在的.

匯入某個包中的某個類用:

import mypackage.subpackage.myclass;

匯入某個包中的全體類用:

import mypackage.subpackage.*;

2.2對於寫在包中類的宣告,要把包的路徑給加上去。

class mypackage.subpackage.myclass

inte***ce mypackage.subpackage.myinte***ce

2.3使用:

2.3.1

比方說,你現在的檔案存放結構是這樣的:

test+---//這個表示資料夾

flaswf

mypackage+---

subpackage1+---

myclass1.as

subpackage2+---

myclass2.as 

如果在class1中有用到class2的類物件

那就應該這樣宣告:

import mypackage.subpackage2.myclass2;

class mypackage.subpackage2.myclass1

最終測試時,別忘了在flash指令碼的路徑選項中應有一項 .

注意,是我們看似不起眼的乙個".",它表示的是當前fla所在路徑.

當然,你也可以選擇不用import而匯入相對路徑.

class mypackage.subpackage2.myclass1

不過,大多數人應該會認為這樣做的話比較麻煩的~~~~

2.3.2

import中起點路徑的定義:

import語句中的起點路徑如何計算呢?

關鍵是看你在「首選項」中設定的指令碼搜尋的起點位置,

通常是有兩項:

.                         //指向當前路徑

$(localdata)/classes      //指向flash的類庫,如果你的flash是裝在c盤的program files裡的話,

那麼這個類庫應該可以通過:

"c:/program files/macromedia/flash mx 2004/zh_**/first run/classes/"

檢視到.

當然,你也可以比較有「個性」的把子路徑或者是父級路徑設為起點路徑:

../                       //父級路徑   

./subarchive/             //子級路徑

不過我不太推薦這樣用.

所以,用import匯入的類的起點位置都要以你在「首選項」中設定的腳下本起始路徑為基準,

比方說:

test+---//這個表示資料夾

flaswf

mypackage+---

mysuperclass.as

subpackage1+---

myclass1.as

subpackage2+---

myclass2.as

首選項中這樣設定:

. $(localdata)/classes

那麼mysuperclass.as若要用到myclass1.as的(通常指建立類的成員物件或繼承)話,則要寫:

import mypackage.subpackage1.myclass1;

myclass2.as用到myclass1.as的情況前面已有://一樣的.

import mypackage.subpackage1.myclass1;

2.4事情變得複雜時,也許你會覺得有些麻煩了,其實不然,

只要遵循乙個原則,當前的類/**段裡有用到哪個類,就把那個類用import給匯入.

舉例如下:

2.4.1

主場景中用乙個簡單工廠模式來切換場景當前場景的管理類,**如下:

var scenemanager:scenemag=new scenemag();

var effectmanager:iseffect=new effect1();//iseffect是乙個介面類

scenemanager.init();

effectmanager.init();

其中,scenemanager還有各個effect的自身有含有很多別的子類,那麼,是否要把它們一口氣全宣告進來呢?

根據前面講的原則,很顯然,這裡只要匯入你當前用的類即可,如下:

import sdgp.**ag.scenemag;//場景管理類

import sdgp.seffect.*;//效果類,有許多,全部匯入.

之後的工作是交給scenemag類及相應的effect類去匯入它們所要用到的類物件即可:

比方說scencemag的宣告部分我是這樣做的:

import sdgp.**ag.csobject;//擴充套件object的乙個類,用於存放一些自定義的全域性屬性,用以解決沒有列舉型別的問題

import sdgp.**ag.rc**ag;//繼承其抽象父類

import sdgp.s***.cs***physce;//匯入***po***元件包中所定義的主場景的部分

import sdgp.seffect.*;//匯入seffect包中的所有類,因為這裡是用簡單工廠模式在建立effect物件

class sdgp.**ag.scenemag extends rc**ag

附:簡單工廠模式實現部分的**:

public function changeitem(num:number):iseffect//通過介面型別, 實現多型的建立物件.

}

web後台 2 路徑問題

參看訪問路徑 在web inf內的檔案用相對路徑,使用絕對路徑也訪問不了,因為web inf是私有的 參看部落格 其中 不是代表專案名稱,是代表專案存放的路徑。你的專案放在什麼目錄下,他就代表什麼目錄。basepath web專案名稱等的完整請求路徑。request.getcontextpath 拿...

113 路徑之和2 遞迴

給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 definition for a binary t...

P1176 路徑計數2

題目描述 乙個n n的網格,你一開始在 1,1 即左上角。每次只能移動到下方相鄰的格仔或者右方相鄰的格仔,問到達 n,n 即右下角有多少種方法。但是這個問題太簡單了,所以現在有m個格仔上有障礙,即不能走到這m個格仔上。輸入輸出格式 輸入格式 輸入檔案第1行包含兩個非負整數n,m,表示了網格的邊長與障...