主要功能:
⒈图片列表.
⒉控制加载的图片大小.
⒊图片切换效果(简单的遮照功能).
package {
import fl . transitions .*;
import fl . transitions . easing .*;
import flash . text .*;
import flash . system . System ;
import flash . events . MouseEvent ;
import flash . events . Event ;
import flash . xml . XMLDocument ;
import flash . net . URLLoader ;
import flash . net . URLRequest ;
import flash . filters . GlowFilter ;
import flash . utils . Timer ;
import flash . events . TimerEvent ;
import flash . display .*;
public class demo extends Sprite {
//定义属性
private var firstLoad : Boolean = true ;
private var firsttxt : Boolean = true ;
private var border : Sprite = new Sprite ;
private var ThumbContainer : Sprite = new Sprite ;
private var mc : MovieClip = new MovieClip ;
private var txtmc : MovieClip = new MovieClip ;
private var BtnPrev : MovieClip = new MovieClip ;
private var BtnNext : MovieClip = new MovieClip ;
private var loadContainer : Sprite = new Sprite ;
private var loading : MovieClip = new MovieClip ;
private var num : uint = 0 ;
private var snum : uint = 11 ;
private var pag : uint = 1 ;
private var len : uint ;
private var XmlUrl : URLRequest ;
private var XmlLoader : URLLoader ;
private var PicUrl : URLRequest ;
private var ThumbUrl : URLRequest ;
private var loader : Loader ;
private var Text : TextField ;
private var _picGlowFilter : GlowFilter = new GlowFilter ( 0x999999 , 1 , 3 , 3 , 3 , 2 , false , false );
private var _glowFilter : GlowFilter = new GlowFilter ( 0x000000 ,. 8 , 2 , 2 , 4 , 1 , true , false );
var PicUrlAry : Array = new Array ();
var PicTextAry : Array = new Array ();
public function demo () {
stage . scaleMode = StageScaleMode . NO_SCALE ;
init (); //初始化
}
private function init (): void {
//初始化组件
var BtnPrev : MovieClip = getChildByName ( "pre" ) as MovieClip ;
BtnPrev . addEventListener ( MouseEvent . MOUSE_DOWN , preHandler );
BtnPrev . buttonMode = true ;
var BtnNext : MovieClip = getChildByName ( "nex" ) as MovieClip ;
BtnNext . addEventListener ( MouseEvent . MOUSE_DOWN , nextHandler );
BtnNext . buttonMode = true ;
//处理XML文件,处理完成后加载第一张大图和缩略图
XmlUrl = new URLRequest ( "piclist.xml" );
XmlLoader = new URLLoader ();
XmlLoader . load ( XmlUrl );
XmlLoader . addEventListener ( Event . COMPLETE , completeHandler );
}
//xml载入完成
function completeHandler ( event : Event ) {
var Xml : XML = new XML ( event . target . data );
len = Xml . pic . length ();
for ( var i : uint = 0 ; i < len ; i ++) {
PicUrlAry [ i ]=( Xml . pic [ i ]. url ). toString ();
PicTextAry [ i ]=( Xml . pic [ i ]. content ). toString ();
}
//载入第一张图片和缩略图
loadThumb ();
loadPic ( num );
}
//载入大图
function loadPic ( num : uint ): void {
PicUrl = new URLRequest ( PicUrlAry [ num ]);
loader = new Loader ();
loader . contentLoaderInfo . addEventListener ( Event . COMPLETE , PicLoadcomplete );
loader . load ( PicUrl );
showText ( num );
}
//载入大图完成后,显示遮罩
function PicLoadcomplete ( evt : Event ): void {
var a : uint = 0 ;
var b : uint = 0 ;
//控制图片大小,按比例缩放
a = Math . round (( 768 / evt . target . content . width )* 100 );
b = Math . round (( 400 / evt . target . content . height )* 100 );
if ( a < 100 || b < 100 ) {
if ( a < b ) {
evt . target . content . scaleX = a / 100 ;
evt . target . content . scaleY = a / 100 ;
} else {
evt . target . content . scaleX = b / 100 ;
evt . target . content . scaleY = b / 100 ;
}
}
mc . addChildAt (( evt . target . content ), 0 ); //加载在最底层
mc . x = 16 + 384 - evt . target . content . width / 2 ;
mc . y = 17 + 200 - evt . target . content . height / 2 ;
addChildAt ( mc , 1 );
RandomInMask ( mc ); //随机遮罩显示
if (! firstLoad ) {
mc . removeChildAt ( 1 ); //移除上层的图片。
}
firstLoad = false ;
}
//随机遮罩显示大图
function RandomInMask ( _mc : MovieClip ) {
var ran : Number ;
ran = Math . round ( Math . random () * 10 );
switch ( ran ) {
case 1 :
TransitionManager . start ( _mc ,{ type : Blinds , direction : Transition . IN , duration : 2 , easing : None . easeNone , numStrips : 10 , dimension : 0 });
break ;
case 2 :
TransitionManager . start ( _mc ,{ type : Blinds , direction : Transition . IN , duration : 2 , easing : None . easeNone , numStrips : 10 , dimension : 1 });
break ;
case 3 :
TransitionManager . start ( _mc , { type : Iris , direction : Transition . IN , duration : 2 , easing : Strong . easeOut , startPoint : 1 , shape : Iris . CIRCLE });
break ;
case 4 :
TransitionManager . start ( _mc , { type : Iris , direction : Transition . IN , duration : 2 , easing : Strong . easeOut , startPoint : 2 , shape : Iris . SQUARE });
break ;
case 5 :
TransitionManager . start ( _mc , { type : Iris , direction : Transition . IN , duration : 2 , easing : Strong . easeOut , startPoint : 5 , shape : Iris . CIRCLE });
break ;
case 6 :
TransitionManager . start ( _mc , { type : Iris , direction : Transition . IN , duration : 2 , easing : Strong . easeOut , startPoint : 8 , shape : Iris . SQUARE });
break ;
case 7 :
TransitionManager . start ( _mc , { type : Fade , direction : Transition . IN , duration : 9 , easing : Strong . easeOut });
case 8 :
TransitionManager . start ( _mc , { type : PixelDissolve , direction : Transition . IN , duration : 2 , easing : Regular . easeIn , xSections : 10 , ySections : 10 });
break ;
case 9 :
TransitionManager . start ( _mc , { type : Zoom , direction : Transition . IN , duration : 2 , easing : Elastic . easeOut });
default :
TransitionManager . start ( _mc , { type : Wipe , direction : Transition . IN , duration : 2 , easing : None . easeNone , startPoint : 1 });
break ;
}
}
//载入小图
function loadThumb (): void {
while ( ThumbContainer . numChildren > 0 ) {
ThumbContainer . removeChildAt ( 0 );
}
while ( loadContainer . numChildren > 0 ) {
loadContainer . removeChildAt ( 0 );
}
var ni : uint = 0 ;
if ( len - pag * snum > 0 ) {
ni = pag * snum ;
} else {
ni = len ;
}
var n : uint = 0 ;
for ( var i : uint =( pag - 1 )* snum ; i < ni ; i ++) {
ThumbUrl = new URLRequest ( PicUrlAry [ i ]);
loader = new Loader ();
loading = new loadwait ();
loader . x = 70 + n * 60 ;
loading . x = 70 + n * 60 ;
loader . y = 465 ;
loading . y = 465 ;
n ++;
loadContainer . addChild ( loading );
addChild ( loadContainer );
loader . contentLoaderInfo . addEventListener ( Event . COMPLETE , ThumbLoadcomplete );
loader . load ( ThumbUrl );
loader . addEventListener ( MouseEvent . MOUSE_DOWN , showPic );
ThumbContainer . buttonMode = true ;
ThumbContainer . addChild ( loader );
}
addChild ( ThumbContainer );
}
//缩略图载入完成后修改大小
function ThumbLoadcomplete ( evt : Event ): void {
var loaderinfo : LoaderInfo = evt . target as LoaderInfo ;
loaderinfo . content . width = 50 ;
loaderinfo . content . height = 26 ;
loaderinfo . content . filters = [ _picGlowFilter ];
}
//缩略图的侦听事件
function showPic ( event : MouseEvent ): void {
var target : DisplayObject = event . target as DisplayObject ;
num = ThumbContainer . getChildIndex ( target )+( pag - 1 )* snum ;
loadPic ( num );
//removeChildAt(1);
}
//显示文字
function showText ( num : uint ) {
Text = new TextField ();
Text . text = PicTextAry [ num ];
Text . width = 200 ;
Text . height = 15 ;
Text . textColor = 0x000000 ;
Text . x = 300 ;
Text . y = 422 ;
Text . autoSize = "center" ;
txtmc . addChildAt ( Text , 0 );
addChildAt ( txtmc , 1 );
if (! firsttxt ) {
txtmc . removeChildAt ( 1 ); //移除上层的文字。
}
firsttxt = false ;
}
//点击BtnPrev
function preHandler ( event : MouseEvent ): void {
if ( pag >= 2 ) {
pag --;
num =( pag - 1 )* snum ;
loadThumb ();
loadPic ( num );
}
}
//点击BtnNext
function nextHandler ( event : MouseEvent ): void {
if ( pag < Math . ceil ( len / snum )) {
pag ++;
num =( pag - 1 )* snum ;
loadThumb ();
loadPic ( num );
}
}