/**/
/*效果:图片旋转,点计图片有交换缓冲效果*/

/**/
/*思路;先通过xml加载外部图片,加载完毕后呈圆形显示出来,最后在旋转,还有鼠标交互方面*/

/**/
/*作者:梦自在*/
import mx.transitions.
*
;
import mx.transitions.easing.
*
;
var x0:Number
=
Stage.width
/
2
-
80
;
var y0:Number
=
Stage.height
/
2
-
40
;

/**/
/*半径*/
var r:Number
=
175
;
var raduis:Number
=
45
;
var p:Number
=
0
;
var mclListener:Object
=
new
Object();
var picLoader:MovieClipLoader
=
new
MovieClipLoader();
var path_array:Array
=
new
Array();
_root.createEmptyMovieClip(
"
pic_container
"
, _rot.getNextHighestDepth());
var myXML:XML
=
new
XML();
myXML.ignoreWhite
=
true
;

/**/
/*加载xml*/

myXML.onLoad
=
function(success:Boolean)
...
{

if (success) ...{

for (var i:Number = 0; i<this.firstChild.childNodes.length; i++) ...{
path_array.push(this.firstChild.childNodes[i].attributes.path);
start_func();
}

} else ...{
trace("加载失败");
}
}
;
myXML.load(
"
pic.xml
"
);

function start_func()
...
{

mclListener.onLoadInit = function(target:MovieClip) ...{
target._width = 100;
target._height = 80;
rotation_func();
};
picLoader.addListener(mclListener);

/**//*把图片按圆形显示*/

for (var i:Number = 0; i<=7; i++) ...{
pic_container.createEmptyMovieClip("image_container"+i, pic_container.getNextHighestDepth());
pic_container["image_container"+i]._x = x0+r*Math.cos((i*raduis)*Math.PI/180);
pic_container["image_container"+i]._y = y0+r*Math.sin((i*raduis)*Math.PI/180);
picLoader.loadClip(path_array[i], pic_container["image_container"+i]);
}
}

function rotation_func()
...
{
var num:Number;
var cinx:Number;
var ciny:Number;

/**//*图形按圆形旋转*/

for (var i:Number = 0; i<=7; i++) ...{
pic_container["image_container"+i].i = i;

pic_container["image_container"+i].onEnterFrame = function() ...{
this._x = x0+r*Math.cos((p+raduis*this.i)*Math.PI/180);
this._y = y0+r*Math.sin((p+raduis*this.i)*Math.PI/180);
p = p+1;
};

pic_container["image_container"+i].onRelease = function() ...{

/**//*第一次按的时候*/

if (!isState) ...{
delete this.onEnterFrame;
var myTween:Tween = new Tween(this, "_x", Elastic.easeOut, this._x, x0, 1, true);
var myTween:Tween = new Tween(this, "_y", Elastic.easeOut, this._y, y0, 1, true);

/**//*记录此时候的图片*/
num = this.i;
isState = true;

} else ...{

/**//*第二次按的时候*/
cinx = this._x;
ciny = this._y;
delete this.onEnterFrame;
var myTween:Tween = new Tween(pic_container["image_container"+num], "_x", Elastic.easeOut, x0, cinx, 1, true);
var myTween:Tween = new Tween(pic_container["image_container"+num], "_y", Elastic.easeOut, y0, ciny, 1, true);
var myTween:Tween = new Tween(this, "_x", Elastic.easeOut, this._x, x0, 1, true);
var myTween:Tween = new Tween(this, "_y", Elastic.easeOut, this._y, y0, 1, true);

pic_container["image_container"+num].onEnterFrame = function() ...{

/**//*把中间的图片按与他交换的图片的轨迹运动*/
this._x = x0+r*Math.cos((p+raduis*this.i)*Math.PI/180);
this._y = y0+r*Math.sin((p+raduis*this.i)*Math.PI/180);
p = p+1;
};
num=this.i;
}
};
}
}
XML:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
list
>
<
pic path
=
"
pic/0.jpg
"
/>
<
pic path
=
"
pic/1.jpg
"
/>
<
pic path
=
"
pic/2.jpg
"
/>
<
pic path
=
"
pic/3.jpg
"
/>
<
pic path
=
"
pic/4.jpg
"
/>
<
pic path
=
"
pic/5.jpg
"
/>
<
pic path
=
"
pic/6.jpg
"
/>
<
pic path
=
"
pic/7.jpg
"
/>
</
list
>
源文件下载:http://space.flash8.net/bbs/attachment.php?aid=338355