日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

AS2.0的私有,公有成員,類繼承和as嵌套_Flash教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Flash 2004 MX Components
1.0UIObject.createObject();作用:創(chuàng)建一個(gè)組件對象用法:componentInstance.createObject(linkageName,instanceName,depth,initObject)例子:在這個(gè)A

AS2.0和JAVA.C#一樣.也運(yùn)用OOP模式.哪它一定就有繼續(xù).子類父類超類的分別.學(xué)過
JAVA,C#的人很快就能理解.

這里說的類繼續(xù)指一個(gè)class類能夠繼續(xù)另一個(gè)class類的全部方法和屬性.在說AS2.O的
類繼續(xù)方法前.先說一下什么是.private(私有性成員)和public(公有性成員)

AS2.0建立在class中的所有變量,方法,屬性默認(rèn)都是公有性的.我們當(dāng)然也可以定義為私有
性的.比如一個(gè)變量.或方法.我并不想在FLA文件中用到.而只是在class類中作為一個(gè)函數(shù)或
私有方法為這個(gè)class文件所用.就要用到private 定義為私有性

舉例:


建立一個(gè)名為test_private.as的class類文件:


class test_private
{

private var tmp1:String; //聲明tmp為私有變量

public var tmp2:String; //不加public默認(rèn)都為公有變量

function test_private()
{
tmp1 = "私有變量"; //賦值

tmp2 = "公有變量";

}

}


然后你在fla文件Layer1中調(diào)用這個(gè)class


var myclass:test_private = new test_private();
trace("tmp1=" myclass.tmp1);
trace("tmp2=" myclass.tmp2);


將會出現(xiàn)檢測到一個(gè)私有成員不能被防問的錯(cuò)誤.指向在tmp1這個(gè)private變量上.

現(xiàn)在我們把fla里的代碼改一下再運(yùn)行:



var myclass = new test_private();
trace("tmp1=" myclass.tmp1);
trace("tmp2=" myclass.tmp2);



這次運(yùn)行通過.顯然區(qū)別就在于.定義class對象時(shí)假如定義引用class類的 type 類形,FLASH
將會檢測到類中哪些為公有性和私有性的成員.我們也可以把方法.自定義函數(shù)定義成為類私有成員;這樣做的好處.私有成員不會被前臺調(diào)用.也防止一些變量或函數(shù)方法的被惡意
調(diào)用.


下面說的是類繼續(xù):

比如說.我建立的一個(gè)類的方法,屬性,變量想被別一個(gè)class調(diào)用.而我又不想在另一個(gè)類中
重復(fù)寫代碼.就要用到繼續(xù).再比如說一個(gè)類在flash運(yùn)行中.行到一個(gè)動態(tài)的變量.而我的另
一個(gè)類文件運(yùn)行時(shí)想調(diào)用這個(gè)動態(tài)的變量.就要給這兩個(gè)類文件建立一個(gè)關(guān)系.
說簡單點(diǎn):父類與子類關(guān)系.或者是爺爺類,父類.子類關(guān)系.他們都有一些相同的特性.而自
己本身也可以有自己的特性.相同的特性都可以使用.

舉例:
建立一個(gè)fla文件.一個(gè)名為txt的文本框.一個(gè)名為square的方塊mc,兩個(gè)按鈕

//建立一個(gè)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;
}
}


他有兩個(gè)私有方法,和兩個(gè)私有String變量,作用是顯示和隱蔽MC square;
建立一個(gè)test2.as的類文件,我們要用這個(gè)類文件繼續(xù)test1.as的所有成員



class test2 extends test1
{
function test2()
{
hide_txt = "隱藏"; //繼續(xù)了test1的變量,我們可以給他賦值
show_txt="顯示";


}


}



現(xiàn)在我們在fla中調(diào)用test2.as的繼續(xù)類來實(shí)現(xiàn)test1.as中的方法;


在一個(gè)button上的as中寫入以下代碼,用來隱藏和顯示信息

on (release) {
var myclass= new test2();
myclass.hide_sq(); //繼續(xù)了test1.as中的方法
txt.text = myclass.hide_txt;
//這是在test2.as中賦值的test1.as中的變量,說明繼續(xù)之后變更為自己的特性
}


在另一個(gè)button上AS中寫上以下:



on (release) {
var myclass = new test2();
myclass.show_sq();
txt.text = myclass.show_txt;
}




我們還可以在test1.as中加入新的方法.既可作為獨(dú)立的類同樣也是一個(gè)繼續(xù)類.

說完繼續(xù)類.再來說as文件嵌套.在flashmx中曾用到過#include "filename.as"
方式.假如用Flash Remoting就要引用 #include "NetDebug.as"等文件.
其實(shí).很象繼續(xù)類.在一個(gè)as文件嵌套引用另一個(gè)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)一個(gè)語法錯(cuò)誤

function test4()
{
hide_txt = "隱藏";
show_txt="顯示";

}

}


很顯然.test3.as不是一個(gè)clas類文件.而只是一個(gè)包含自定義函數(shù)變量的
as文件.假如你加上clas{}變?yōu)轭愇募?#include不能包含定義成類的as文
件.下面使用嵌套的test4.as類文件;在兩個(gè)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類文件一樣也能引用嵌套進(jìn)來的as文件中的變量和自定義函數(shù);
你也可以嵌套進(jìn)多個(gè)as文件,這與類繼續(xù)有點(diǎn)不一樣.


AS2.0比起1.0相對靈活多了.同樣.對coder的要求也高了.相信以后Designer
和coder將會分工了.

分享:為AS2.0添磚加瓦-編寫類擴(kuò)展(4)
mc的雙擊事件1、建立CPoweredByXiaowu.as:classCPoweredByXiaowuextendsMovieClip{//--------------------------------------------------------------

來源:設(shè)計(jì)前沿網(wǎng)上收集//所屬分類:Flash教程/更新時(shí)間:2008-03-05
相關(guān)Flash教程