主要功能:
⒈圖片列表.
⒉控制加載的圖片大小.
⒊圖片切換效果(簡單的遮照功能).
DEMO.as:
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
);
}
}
用flash製作相冊的源碼(as3 xml 圖片瀏覽)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.