package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.Bitmap;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.StageScaleMode;
import flash.display.Shape;
import Effters.loading;
import flash.events.IOErrorEvent;
public class Main extends Sprite
{
//
首次加载的图片url
private
var
url:String
=
"
http://******????????"
;
//
后续加载的图片url
private
var
_URL:String
=
"
http://******??????
"
;
private
var
_URL2:String
=
"
.*????????
"
;
private
var
LoadURL:String;
private
var
loader:Loader;
private
var
test:Sprite
=
new
Sprite();
private
var
stage_width:Number;
private
var
stage_height:Number;
private
var
test_width:Number;
private
var
test_height:Number;
private
var
_X:TextField
=
new
TextField();
private
var
_Y:TextField
=
new
TextField();
private
var
_W:TextField
=
new
TextField();
private
var
_H:TextField
=
new
TextField();
private
var
_RECT:TextField
=
new
TextField();
private
var
_F:TextFormat
=
new
TextFormat();
private
var
ErrorText:TextField
=
new
TextField();
private
var
rect:Shape
=
new
Shape();
private
var
loadingeffters:loading;
private
var
upbtn:Sprite;
private
var
downbtn:Sprite;
private
var
index:
int
=
0
;
public
function
Main():
void
{
init();
}
private
function
init():
void
{
stage.scaleMode
=
StageScaleMode.NO_SCALE;
stage_width
=
this
.stage.stageWidth;
stage_height
=
this
.stage.stageHeight;
rect.graphics.beginFill(
0xffff00
,
0.6
);
rect.graphics.drawRect(
0
,
0
,
20
,
20
);
rect.graphics.endFill();
addChild(rect);
rect.y
=
this
.stage.stageHeight
-
rect.height;
_F.color
=
0xffffff
;
_F.size
=
14
;
_X.text
=
"
鼠标X轴:
"
+
"
0
"
;
_Y.text
=
"
鼠标Y轴:
"
+
"
0
"
;
_W.text
=
"
当前舞台宽度:
"
+
this
.stage.stageWidth;
_H.text
=
"
当前舞台高度:
"
+
this
.stage.stageHeight;
_RECT.text
=
"
方块X、Y:
"
+
rect.x
+
"
,
"
+
rect.y;
_X.setTextFormat(_F);
_Y.setTextFormat(_F);
_W.setTextFormat(_F);
_H.setTextFormat(_F);
_RECT.setTextFormat(_F);
addChild(_X);
addChild(_Y);
addChild(_W);
addChild(_H);
addChild(_RECT);
_X.y
=
10
;
_Y.y
=
30
;
_W.y
=
50
;
_H.y
=
70
;
_RECT.y
=
90
;
_X.height
=
20
;
_Y.height
=
20
;
_W.height
=
20
;
_H.height
=
20
;
_RECT.height
=
20
;
_W.width
=
150
;
_H.width
=
150
;
_RECT.width
=
150
;
upbtn
=
Draws(
40
,
15
,
6
,
0xFF99FF
);
downbtn
=
Draws(
40
,
15
,
6
,
0xFFCCFF
);
//
添加按钮
addChild(downbtn);
downbtn.x
=
rect.x
+
25
;
downbtn.y
=
this
.stage.stageHeight
-
20
;
downbtn.buttonMode
=
true
;
addChild(upbtn);
upbtn.x
=
downbtn.x
+
45
;
upbtn.y
=
downbtn.y;
upbtn.buttonMode
=
true
;
var
upbtntext:TextField
=
new
TextField();
var
downbtntext:TextField
=
new
TextField();
upbtntext.text
=
"
下一张
"
;
upbtntext.width
=
40
;
downbtntext.text
=
"
上一张
"
;
downbtntext.width
=
40
;
upbtn.addChild(upbtntext);
downbtn.addChild(downbtntext);
upbtntext.y
=
downbtntext.y
=
-
2
;
upbtntext.selectable
=
downbtntext.selectable
=
false
;
upbtntext.mouseEnabled
=
downbtntext.mouseEnabled
=
false
;
//
监听舞台改变尺寸事件
this
.stage.addEventListener(Event.RESIZE,ReSizeHalder);
//
监听鼠标移动事件;
this
.stage.addEventListener(MouseEvent.MOUSE_MOVE,MoveHalder);
//
监听鼠标点击按钮事件;
upbtn.addEventListener(MouseEvent.CLICK,up_click);
downbtn.addEventListener(MouseEvent.CLICK,down_click);
ErrorText.y
=
110
;
ErrorText.height
=
20
;
ErrorText.width
=
200
;
ErrorText.textColor
=
0xffffff
;
loader
=
new
Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,com);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,error);
loader.load(
new
URLRequest(url));
ErrorText.text
=
"
图片加载中...
"
;
addChild(ErrorText);
//
添加loading效果
loadingeffters
=
new
loading();
addChild(loadingeffters);
loadingeffters.x
=
stage.stageWidth
/
3.5
;
loadingeffters.y
=
stage.stageHeight
/
3.5
;
}
private
function
error(evt:IOErrorEvent):
void
{
removeChild(loadingeffters);
ErrorText.textColor
=
0xFF0000
;
ErrorText.text
=
"
图片加载失败
"
;
loader.unload();
loader
=
null
;
}
private
function
com(evt:Event):
void
{
//
移除loader监听事件
ErrorText.text
=
""
;
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,com);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,error);
//
加载完成,移除loading效果;
removeChild(loadingeffters);
//
显示图片等
var
bitmap:Bitmap
=
Bitmap(loader.content);
test.addChild(bitmap);
test_width
=
test.width;
test_height
=
test.height;
addChild(test);
//
设置图片大小位置
setvideosize(test,stage_width,stage_height,
this
.stage.stageWidth,
this
.stage.stageHeight,test_width,test_height);
loader.unload();
loader
=
null
;
}
private
function
MoveHalder(evt:MouseEvent):
void
{
_X.text
=
"
鼠标X轴:
"
+
this
.mouseX;
_Y.text
=
"
鼠标Y轴:
"
+
this
.mouseY;
_X.setTextFormat(_F);
_Y.setTextFormat(_F);
}
private
function
ReSizeHalder(evt:Event):
void
{
rect.x
=
(stage_width
-
this
.stage.stageWidth)
/
2;
rect.y
=
(stage_height
-
this
.stage.stageHeight)
/
2 + this.stage.stageHeight - rect.height;
downbtn.x
=
(stage_width
-
this
.stage.stageWidth)
/
2 + 25;
downbtn.y
=
(stage_height
-
this
.stage.stageHeight)
/
2 + this.stage.stageHeight - 20;
upbtn.x
=
downbtn.x
+
45
;
upbtn.y
=
downbtn.y;
if
(loadingeffters.parent
!=
true
)
{
loadingeffters.x
=
this
.stage.stageWidth
/
3.5
;
loadingeffters.y
=
this
.stage.stageHeight
/
3.5
;
}
_W.text
=
"
当前舞台宽度:
"
+
this
.stage.stageWidth;
_H.text
=
"
当前舞台高度:
"
+
this
.stage.stageHeight;
_RECT.text
=
"
方块X、Y:
"
+
rect.x
+
"
,
"
+
rect.y;
_W.setTextFormat(_F);
_H.setTextFormat(_F);
_RECT.setTextFormat(_F);
setvideosize(test,stage_width,stage_height,
this
.stage.stageWidth,
this
.stage.stageHeight,test_width,test_height);
}
private
function
setvideosize(video:Sprite,stage_width:Number,stage_height:Number,StageWidth:Number,StageHeight:Number,loadvideowidth:Number, loadvideoheight:Number):
void
{
if
((loadvideowidth
/
loadvideoheight)
>
(StageWidth
/
StageHeight))
{
video.width
=
StageWidth;
video.height
=
StageWidth
/
(loadvideowidth
/
loadvideoheight);
video.x
=
(stage_width
-
StageWidth)
/
2;
video.y
=
(stage_height
-
StageHeight)
/
2 + Math.abs((StageHeight - video.height)
/
2
);
}
else
if
((loadvideowidth
/
loadvideoheight)
<
(StageWidth
/
StageHeight))
{
video.height
=
StageHeight;
video.width
=
StageHeight
*
(loadvideowidth
/
loadvideoheight);
video.x
=
(stage_width
-
StageWidth)
/
2 + (Math.abs(StageWidth - video.width)
/
2
);
video.y
=
(stage_height
-
StageHeight)
/
2;
}
else
if
((loadvideowidth
/
loadvideoheight)
==
(StageWidth
/
StageHeight))
{
video.width
=
StageWidth;
video.height
=
StageHeight;
video.x
=
(stage_width
-
StageWidth)
/
2;
video.y
=
(stage_height
-
StageHeight)
/
2;
}
}
private
function
Draws(drawwidth:Number,drawheight:Number,ellipseWidth:Number,colors:uint):Sprite
{
var
drawsprite:Sprite
=
new
Sprite();
drawsprite.graphics.beginFill(colors,
0.8
);
drawsprite.graphics.drawRoundRect(
0
,
0
,drawwidth,drawheight,ellipseWidth);
drawsprite.graphics.endFill();
return
drawsprite;
}
private
function
up_click(evt:MouseEvent):
void
{
if
(loader
==
null
)
{
index
--
;
if
(index
<
1
)
{
index
=
26
;
}
loadpictures();
}
}
private
function
down_click(evt:MouseEvent):
void
{
if
(loader
==
null
)
{
index
++
;
if
(index
>
26
)
{
index
=
1
;
}
loadpictures();
}
}
private
function
loadpictures():
void
{
LoadURL
=
_URL
+
index
+
_URL2;
loader
=
new
Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,piccom);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,error);
loader.load(
new
URLRequest(LoadURL));
ErrorText.textColor
=
0xffffff
;
ErrorText.text
=
"
图片加载中...
"
;
//
添加loading特效
if
(loadingeffters.parent
==
null
)
{
addChild(loadingeffters);
}
}
private
function
piccom(evt:Event):
void
{
ErrorText.text
=
""
;
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,piccom);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,error);
if
(loadingeffters.parent
!=
null
)
{
removeChild(loadingeffters);
}
var
bitmap:Bitmap
=
Bitmap(loader.content);
if
(test.numChildren
!=
0
)
{
test.removeChildAt(
0
);
}
this
.addChildAt(test,
this
.parent.numChildren
-
1
);
test.addChild(bitmap);
test_width
=
test.width;
test_height
=
test.height;
setvideosize(test,stage_width,stage_height,
this
.stage.stageWidth,
this
.stage.stageHeight,test_width,test_height);
if
(loader
!=
null
)
{
loader.unload();
loader
=
null
;
}
}
}
}
loading效果,可以在我前面发的几篇文章中查看,以上效果仅供参考...