AS2.0的私有,公有成員,類繼承和as嵌套_Flash教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Flash 2004 MX Components1.0UIObject.createObject();作用:創(chuàng)建一個組件對象用法:componentInstance.createObject(linkageName,instanceName,depth,initObject)例子:在這個A
AS2.0和JAVA.C#一樣.也運用OOP模式.哪它一定就有繼續(xù).子類父類超類的分別.學(xué)過JAVA,C#的人很快就能理解.
這里說的類繼續(xù)指一個class類能夠繼續(xù)另一個class類的全部方法和屬性.在說AS2.O的
類繼續(xù)方法前.先說一下什么是.private(私有性成員)和public(公有性成員)
AS2.0建立在class中的所有變量,方法,屬性默認都是公有性的.我們當然也可以定義為私有
性的.比如一個變量.或方法.我并不想在FLA文件中用到.而只是在class類中作為一個函數(shù)或
私有方法為這個class文件所用.就要用到private 定義為私有性
舉例:
建立一個名為test_private.as的class類文件:
class test_private
{
private var tmp1:String; //聲明tmp為私有變量
public var tmp2:String; //不加public默認都為公有變量
function test_private()
{
tmp1 = "私有變量"; //賦值
tmp2 = "公有變量";
}
}
然后你在fla文件Layer1中調(diào)用這個class
var myclass:test_private = new test_private();
trace("tmp1=" myclass.tmp1);
trace("tmp2=" myclass.tmp2);
將會出現(xiàn)檢測到一個私有成員不能被防問的錯誤.指向在tmp1這個private變量上.
現(xiàn)在我們把fla里的代碼改一下再運行:
var myclass = new test_private();
trace("tmp1=" myclass.tmp1);
trace("tmp2=" myclass.tmp2);
這次運行通過.顯然區(qū)別就在于.定義class對象時假如定義引用class類的 type 類形,FLASH
將會檢測到類中哪些為公有性和私有性的成員.我們也可以把方法.自定義函數(shù)定義成為類私有成員;這樣做的好處.私有成員不會被前臺調(diào)用.也防止一些變量或函數(shù)方法的被惡意
調(diào)用.
下面說的是類繼續(xù):
比如說.我建立的一個類的方法,屬性,變量想被別一個class調(diào)用.而我又不想在另一個類中
重復(fù)寫代碼.就要用到繼續(xù).再比如說一個類在flash運行中.行到一個動態(tài)的變量.而我的另
一個類文件運行時想調(diào)用這個動態(tài)的變量.就要給這兩個類文件建立一個關(guān)系.
說簡單點:父類與子類關(guān)系.或者是爺爺類,父類.子類關(guān)系.他們都有一些相同的特性.而自
己本身也可以有自己的特性.相同的特性都可以使用.
舉例:
建立一個fla文件.一個名為txt的文本框.一個名為square的方塊mc,兩個按鈕
//建立一個test1.as的類文件
class test1
{
private var hide_txt:String;
private var show_txt:String;
private function hide_sq()
{
_root.square._visible = false;
}
private function show_sq()
{
_root.square._visible=true;
}
}
他有兩個私有方法,和兩個私有String變量,作用是顯示和隱蔽MC square;
建立一個test2.as的類文件,我們要用這個類文件繼續(xù)test1.as的所有成員
class test2 extends test1
{
function test2()
{
hide_txt = "隱藏"; //繼續(xù)了test1的變量,我們可以給他賦值
show_txt="顯示";
}
}
現(xiàn)在我們在fla中調(diào)用test2.as的繼續(xù)類來實現(xiàn)test1.as中的方法;
在一個button上的as中寫入以下代碼,用來隱藏和顯示信息
on (release) {
var myclass= new test2();
myclass.hide_sq(); //繼續(xù)了test1.as中的方法
txt.text = myclass.hide_txt;
//這是在test2.as中賦值的test1.as中的變量,說明繼續(xù)之后變更為自己的特性
}
在另一個button上AS中寫上以下:
on (release) {
var myclass = new test2();
myclass.show_sq();
txt.text = myclass.show_txt;
}
我們還可以在test1.as中加入新的方法.既可作為獨立的類同樣也是一個繼續(xù)類.
說完繼續(xù)類.再來說as文件嵌套.在flashmx中曾用到過#include "filename.as"
方式.假如用Flash Remoting就要引用 #include "NetDebug.as"等文件.
其實.很象繼續(xù)類.在一個as文件嵌套引用另一個as文件中的方法.
但是flash mx 2004中,as文件嵌套和繼續(xù)類寫法不一樣.
舉例:
建立test3.as文件如下:
var hide_txt:String;
var show_txt:String;
function hide_sq()
{
_root.square._visible = false;
}
function show_sq()
{
_root.square._visible=true;
}
建立test4.as文件如下:
class test4
{
#include "test3.as"
//這里引用test3.as文件.注重沒(;)號結(jié)尾不然會出現(xiàn)一個語法錯誤
function test4()
{
hide_txt = "隱藏";
show_txt="顯示";
}
}
很顯然.test3.as不是一個clas類文件.而只是一個包含自定義函數(shù)變量的
as文件.假如你加上clas{}變?yōu)轭愇募?#include不能包含定義成類的as文
件.下面使用嵌套的test4.as類文件;在兩個BUTTON上加入以下代碼.同上
面差不多.
on (release) {
var myclass:test4 = new test4();
myclass.show_sq()
txt.text = myclass.show_txt;
}
on (release) {
var myclass:test4= new test4();
myclass.hide_sq()
txt.text = myclass.hide_txt;
}
顯然test4.as類文件一樣也能引用嵌套進來的as文件中的變量和自定義函數(shù);
你也可以嵌套進多個as文件,這與類繼續(xù)有點不一樣.
AS2.0比起1.0相對靈活多了.同樣.對coder的要求也高了.相信以后Designer
和coder將會分工了.
分享:為AS2.0添磚加瓦-編寫類擴展(4)mc的雙擊事件1、建立CPoweredByXiaowu.as:classCPoweredByXiaowuextendsMovieClip{//--------------------------------------------------------------
相關(guān)Flash教程:
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
猜你也喜歡看這些
- 新東方劍橋商務(wù)英語BEC flash教程 初+中+高 (現(xiàn)已穩(wěn)定供源)
- 中國閃客原創(chuàng)爬行榜Flash TOP10動畫風(fēng)暴 隨書光盤 2CD
- 中科院新科海Flash培訓(xùn)視頻
- 新東方任汝芬考研政治大綱解析班flash視頻及其他
- Flash 8 入門與提高實例教程
- Flash 8完美動畫設(shè)計與制作
- Flash CS3動畫制作從新手到高手
- Flash 8中文版MV及課件制作基礎(chǔ)培訓(xùn)百例
- Authorware 7.0 Flash MX 2004多媒體創(chuàng)作實例導(dǎo)學(xué)
- Flash卡通動畫設(shè)計-隨書光盤
- 相關(guān)鏈接:
- 教程說明:
Flash教程-AS2.0的私有,公有成員,類繼承和as嵌套。