as3.0 怎样获得as3 载入图片swf的总帧数?

查看: 6898|回复: 33
425 枚金币
回复本帖可获得 5 枚金币奖励! 每人限 10 次
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
本帖最后由 zhuhuixiang217 于
14:15 编辑
我这里找了个代码,测试了下可行
但是是AS2.0的,而且只能鼠标控制左右转动,不能实现上下转动
亲们~求一个AS3.0的代码,可以像这个导入序列帧后直接连接了就能用的
可以鼠标控制360旋转的
class DragCtrlPlay extends MovieClip {
& & & & //被拖拽MC的总帧数:&&
& & & & private var total_frames:N
& & & & //被拖拽MC的当前帧数:&&
& & & & private var current_frame:N
& & & & //鼠标点击图片时的x坐标:&&
& & & & var start_x:N
& & & & //拖拽控制灵敏度:&&
& & & & var drag_dx:N
& & & & //响应拖拽的开关:&&
& & & & var is_ctrl:B
& & & & //构造函数:&&
& & & & function DragCtrlPlay() {
& & & & & & & & init();
& & & & }
& & & & //各项初始化:&&
& & & & private function init() {
& & & & & & & & total_frames = this._
& & & & & & & & current_frame = 1;
& & & & & & & & drag_dx = 10;
& & & & & & & & is_ctrl =
& & & & & & & & this.gotoAndStop(1);
& & & & & & & & this.onRollOver = mcOnRollO
& & & & & & & & this.onPress = mcOnP
& & & & & & & & this.onRelease = this.onReleaseOutside=mcOnR
& & & & & & & & this.onMouseMove = mcOnMouseM
& & & & }
& & & & //鼠标onRollOver事件:&&
& & & & private function mcOnRollOver() {
& & & & & & & & //不显示鼠标手势:&&
& & & & & & & & //this.useHandCursor =& &
& & & & }
& & & & //鼠标onPress事件:&&
& & & & private function mcOnPress() {
& & & & & & & & //记录鼠标点击图片时的x坐标:&&
& & & & & & & & start_x = _
& & & & & & & & //打开响应开关:&&
& & & & & & & & is_ctrl =
& & & & }
& & & & //鼠标onRelease事件:&&
& & & & private function mcOnRelease() {
& & & & & & & & //关闭响应开关:&&
& & & & & & & & is_ctrl =
& & & & & & & & //更新当前帧数:&&
& & & & & & & & current_frame = this._
& & & & }
& & & & //鼠标onMouseMove事件:&&
& & & & private function mcOnMouseMove() {
& & & & & & & & if (is_ctrl) {
& & & & & & & & & & & & //实时获取鼠标当前x坐标:&&
& & & & & & & & & & & & var current_x:Number = _
& & & & & & & & & & & & //播放的帧数差:&&
& & & & & & & & & & & & var frame_d:Number = Math.ceil((current_x-start_x)/drag_dx);
& & & & & & & & & & & & //影片播放到当前帧数差的位置:&&
& & & & & & & & & & & & mcGotoAndStop(frame_d);
& & & & & & & & & & & & //更新画面显示,使拖拽效果不受影片帧速影响:&&
& & & & & & & & & & & & updateAfterEvent();
& & & & & & & & }
& & & & }
& & & & //影片播放到当前帧数差的位置:&&
& & & & private function mcGotoAndStop(__d) {
& & & & & & & & //影片最终播放并停止到的帧数:&&
& & & & & & & & var frame_final:Number = current_frame+__d;
& & & & & & & & //超出帧数范围会循环播放:&&
& & & & & & & & while (frame_final&total_frames) {
& & & & & & & & & & & & frame_final -= total_
& & & & & & & & }
& & & & & & & & while (frame_final&1) {
& & & & & & & & & & & & frame_final += total_
& & & & & & & & }
& & & & & & & & this.gotoAndStop(frame_final);
& & & & }
& & & & //最后gotoAndStop到计算好的帧数:&&
人生就像一部电视剧,每一个特殊场景里的对话都有我们想要述说的欲语还休……抬头仰望天空的眼瞳,是在掩饰谁的过往?
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
1,新建一个Flash文件,在库中新建一个MC,把事先准备好的图片序列导入到该MC中,一张图片占一帧;
2,把这个MC拖放到场景中,可以先发布预览一下,看看图片序列播放起来是否流畅;
3,新建一个ActionScript文件,文件名保存为DragCtrlPlay.as(文件名必须跟里面的类名相同),里面的代码如上:
4,在库中右键单击这个MC,选择“链接...”(Linkage...);
5,在弹出的窗口中勾选“为ActionScript导出“(Exprot for ActionScript),在“类”(Class)那一栏中填入要绑定的类名:DragCtrlPlay;
6,把类文件DragCtrlPlay.as跟FLASH源文件在同一目录下,发布即可看到效果;
这是上面的代码教程 - -!
人生就像一部电视剧,每一个特殊场景里的对话都有我们想要述说的欲语还休……抬头仰望天空的眼瞳,是在掩饰谁的过往?
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
/forum.php?mod=attachment&aid=MTU1ODA1OXwzNjljOGI4NGQ1ZjJhYjY2ZTUyZjcxYmQwNmIzMDYyNnwxNDU0NzI2MTgz&request=yes&_f=.swf
附件: 你需要才可以下载或查看附件。没有帐号?
人生就像一部电视剧,每一个特殊场景里的对话都有我们想要述说的欲语还休……抬头仰望天空的眼瞳,是在掩饰谁的过往?
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
居然没一个人回复 - -!
AS3.0的我已经找到了,哎
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
AS3.0stage.frameRate=6;
//设定功能键按下后的状态
var action=0;
//电脑MC在鼠标按下后鼠标所在X轴位置及当前所在帧
var stop_x=0;
var stop_
//设定陶瓷旋转方向
var dir=0;
//设置模糊滤镜功能
var blurSpeed:Number=0.25;
var blur:BlurFilter=new BlurFilter();
blur.blurX=1;
blur.blurY=1;
blur.quality=BitmapFilterQuality.HIGH;
bottle.filters=[blur];
/*
//读取XML数据,将外部图片数据加载到container内
var image_width:N
var image_height:N
var image_path:Array=new Array();//图片路径数组
var loader:URLLoader=new URLLoader();//用于导入XML
var img_loader:Loader=new Loader();//用于导入图片
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.PLETE,handleComplete);
loader.load(new URLRequest(&../data/user.xml&));
function handleComplete(event:Event):void
{
& & & & try
& & & & {
& & & & & & & & var dataXML:XML=new XML(event.target.data);
& & & & & & & & var image:String=dataXML.panorama[0].
& & & & & & & & image_width=dataXML.panorama[0].
& & & & & & & & image_height=dataXML.panorama[0].
& & & & & & & & image_path=image.split(& &);
& & & & & & & & for(var i=0;i&image_path.i++)
& & & & & & & & {
& & & & & & & & & & & & container.addFrameScript(i,load_img(i));
& & & & & & & & }
& & & & }
& & & & catch(e:TypeError)
& & & & {
& & & & & & & & trace(&载入XML发生错误!&);
& & & & & & & & trace(e.message);
& & & & }
}
//写在container每帧上的代码
function load_img(index:Number):void
{
& & & & //img_loader.contentLoaderInfo.PLETE, onComplete);
& & & & img_loader.load(new URLRequest(image_path[index]));
& & & & container.loader1.addChild(img_loader);
}
function onComplete(event:Event):void
{
& & & & var image_data:Bitmap = Bitmap(img_loader.content);
& & & & var bitmap:BitmapData = image_data.bitmapD
& & & & container.addChild(image_data);
}
*/
large_btn.buttonMode=
small_btn.buttonMode=
left_btn.buttonMode=
right_btn.buttonMode=
speed_btn.buttonMode=
//设置按钮监听器
large_btn.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
small_btn.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
left_btn.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
right_btn.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
speed_btn.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
bottle.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
large_btn.addEventListener(MouseEvent.MOUSE_UP, mouseup);
small_btn.addEventListener(MouseEvent.MOUSE_UP, mouseup);
speed_btn.addEventListener(MouseEvent.MOUSE_UP, mouseup);
bottle.addEventListener(MouseEvent.MOUSE_UP, mouseup);
speed_btn.addEventListener(MouseEvent.MOUSE_OUT, mouseout);
bottle.addEventListener(Event.ENTER_FRAME, enterframe);
//设置按钮事件
function mousedown(event:MouseEvent):void
{
& & & & switch(event.currentTarget)
& & & & & & & & case large_btn:
& & & & & & & & {
& & & & & & & & & & & & action=1;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case small_btn:
& & & & & & & & {
& & & & & & & & & & & & action=2;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case left_btn:
& & & & & & & & {
& & & & & & & & & & & & action=3;
& & & & & & & & & & & & dir=0;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case right_btn:
& & & & & & & & {
& & & & & & & & & & & & action=4;
& & & & & & & & & & & & dir=1;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case speed_btn:
& & & & & & & & {
& & & & & & & & & & & & var rect=new flash.geom.Rectangle(26,546.5,19,0);
& & & & & & & & & & & & speed_btn.startDrag(false,rect);
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case bottle:
& & & & & & & & {
& & & & & & & & & & & & action=5;
& & & & & & & & & & & & stop_x=stage.mouseX;
& & & & & & & & & & & & stop_frame=bottle.currentF
& & & & & & & & }
& &&&& & & & & & & &
& & & & }
}
function mouseup(event:MouseEvent):void
{
& & & & switch(event.currentTarget)
& & & & & & & & case large_btn:
& & & & & & & & {
& & & & & & & & & & & & action=0;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case small_btn:
& & & & & & & & {
& & & & & & & & & & & & action=0;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case speed_btn:
& & & & & & & & {
& & & & & & & & & & & & speed_btn.stopDrag();
& & & & & & & & & & & & stage.frameRate=speed_btn.x-19;
& & & & & & & & }
& &&&& & & & & & & &
& & & & & & & & case bottle:
& & & & & & & & {
& & & & & & & & & & & & action=0;
& & & & & & & & & & & & stage.frameRate=speed_btn.x-19;
& & & & & & & & }
& &&&& & & & & & & &
& & & & }
}
function mouseout(event:MouseEvent):void
{
& & & & speed_btn.stopDrag();
& & & & stage.frameRate=speed_btn.x-19;
}
function enterframe(event:Event):void
{
& & & & var x_scale:int=Math.round(bottle.scaleX*100);
& & & & if(x_scale&200&&x_scale&100)
& & & & {
& & & & & & & & if(action==1)
& & & & & & & & {
& & & & & & & & & & & & bottle.scaleX+=0.2;
& & & & & & & & & & & & bottle.scaleY+=0.2;
& & & & & & & & & & & & if(blur.blurX&2)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & blur.blurX += blurS
& & & & & & & & & & & & & & & & blur.blurY += blurS
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & & bottle.filters = [blur];
& & & & & & & & }
& & & & & & & & else if(action==2)
& & & & & & & & {
& & & & & & & & & & & & bottle.scaleX-=0.2;
& & & & & & & & & & & & bottle.scaleY-=0.2;
& & & & & & & & & & & & if(blur.blurX&0)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & blur.blurX -= blurS
& & & & & & & & & & & & & & & & blur.blurY -= blurS
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & & bottle.filters = [blur];
& & & & & & & & }
& & & & & & & & else if(action==3)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==bottle.totalFrames)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(1);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.nextFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==4)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==1)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(bottle.totalFrames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.prevFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==5)
& & & & & & & & {
& & & & & & & & & & & & stage.frameRate=30;
& & & & & & & & & & & & var x_length=Math.round((stage.mouseX-stop_x)/20);
& & & & & & & & & & & & if(x_length&=0)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & var frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & if(stop_frame+x_length&=0)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=bottle.totalFrames-Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & &
& & & & & & & & }
& & & & }
& & & & else if(x_scale==100)
& & & & {
& & & & & & & & if(action==1)
& & & & & & & & {
& & & & & & & & & & & & bottle.scaleX+=0.2;
& & & & & & & & & & & & bottle.scaleY+=0.2;
& & & & & & & & & & & & if(blur.blurX&2)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & blur.blurX += blurS
& & & & & & & & & & & & & & & & blur.blurY += blurS
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & & bottle.filters = [blur];
& & & & & & & & }
& & & & & & & & else if(action==3)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==bottle.totalFrames)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(1);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.nextFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==4)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==1)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(bottle.totalFrames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.prevFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==5)
& & & & & & & & {
& & & & & & & & & & & & stage.frameRate=30;
& & & & & & & & & & & & var x_length=Math.round((stage.mouseX-stop_x)/20);
& & & & & & & & & & & & if(x_length&=0)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & var frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & if(stop_frame+x_length&=0)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=bottle.totalFrames-Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & &
& & & & & & & & }
& & & & }
& & & & else if(x_scale==200)
& & & & {
& & & & & & & & if(action==2)
& & & & & & & & {
& & & & & & & & & & & & bottle.scaleX-=0.2;
& & & & & & & & & & & & bottle.scaleY-=0.2;
& & & & & & & & & & & & if(blur.blurX&0)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & blur.blurX -= blurS
& & & & & & & & & & & & & & & & blur.blurY -= blurS
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & & bottle.filters = [blur];
& & & & & & & & }
& & & & & & & & else if(action==3)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==bottle.totalFrames)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(1);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.nextFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==4)
& & & & & & & & {
& & & & & & & & & & & & if(bottle.currentFrame==1)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.gotoAndStop(bottle.totalFrames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & bottle.prevFrame();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else if(action==5)
& & & & & & & & {
& & & & & & & & & & & & stage.frameRate=30;
& & & & & & & & & & & & var x_length=Math.round((stage.mouseX-stop_x)/20);
& & & & & & & & & & & & if(x_length&=0)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & var frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & if(stop_frame+x_length&=0)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=bottle.totalFrames-Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & frames=Math.abs(stop_frame+x_length)%bottle.totalF
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & bottle.gotoAndStop(frames);
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & &
& & & & & & & & }
& & & & }
}复制代码这个命令运行后会报错,但效果一样出来了。。。可以无视的错误
求高手来看看啊,顺便这个命令只能实现鼠标控制左右旋转,如何实现上下旋转呢?
想要可以全方位的效果 - -!
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
本帖最后由 zhuhuixiang217 于
13:01 编辑
附件: 你需要才可以下载或查看附件。没有帐号?
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
AS3.0 按住左键 舞台(按钮)mc移动(上下左右,倾斜)松开停止
import flash.events.MouseE
import flash.events.E
stage.addEventListener(MouseEvent.MOUSE_DOWN,downF);
stage.addEventListener(MouseEvent.MOUSE_UP,upF);
function downF(e:MouseEvent):void
ball.addEventListener(Event.ENTER_FRAME,frameF);
function upF(e:MouseEvent):void
ball.removeEventListener(Event.ENTER_FRAME,frameF);
function frameF(e:Event):void
ball.x--;//ball.x++、y++、y--//速度根据自己需求
if (ball.x &= 0)
&&ball.x = 550;//舞台最边缘
}//非本人所创
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
Flash教程:AS3.0打造三维旋转球
制作方法:
1、新建AS3.0 flv文档,文档属性,500*500像素,帧频60fps ,存盘。
2、导入制作球体和背景的图片到库中,右键单击球体贴图图片,命名为Earth。
3、创建名为dotClip的影片剪辑,图层1绘制15*15笔触黑色,填充色为#cccccc的圆形,第2帧插入关键帧。添加图层2,在第2 帧插入关键帧,绘制5*5无笔触,颜色为黑色的圆形。
4、返回场景1,图层1拖入背景图片。
5、添加as层输入代码:
//导入BitmapSphereBasic类
import com.flashandmath.cs4.BitmapSphereB
//创建一个行星
var board:Sprite = new Sprite();
//添加到显示列表
this.addChild(board);
//生成 datatype BitmapSphereBasic 的一个函数。
// 设定函数初始值。
var ball:BitmapSphereB
//旋转的一个布尔值的函数。
var autoOn:Boolean =
//两个函数为鼠标旋转。
var prevX:N
var prevY:N
//行星的位置.
var ballX:Number = 250;
var ballY:Number = 250;
var imageData:BitmapData = new Earth(800,548);
ball = new BitmapSphereBasic(imageData);
board.addChild(ball);
ball.x = ballX;
ball.y = ballY;
ball.filters = [new GlowFilter(0xB4B5FE,0.6,32.0,32.0,1)];
this.addEventListener(Event.ENTER_FRAME,autoRotate);
board.addEventListener(MouseEvent.ROLL_OUT,boardOut);
board.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
board.addEventListener(MouseEvent.MOUSE_DOWN,boardDown);
board.addEventListener(MouseEvent.MOUSE_UP,boardUp);
function autoRotate(e:Event):void {
if (autoOn) {
ball.autoSpin(-1);
//三个侦听为旋转和鼠标。
function boardOut(e:MouseEvent):void {
function boardDown(e:MouseEvent):void {
prevX = board.mouseX;
prevY = board.mouseY;
function boardUp(e:MouseEvent):void {
function boardMove(e:MouseEvent):void {
var locX:Number = prevX;
var locY:Number = prevY;
if (! autoOn) {
prevX = board.mouseX;
prevY = board.mouseY;
ball.rotateSphere(prevY - locY, - (prevX - locX),0);
e.updateAfterEvent();
6、把附件中的com解压到同一目录下,完工测试。
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
AS3.0代码 鼠标左右拖拽物体360度平行旋转
1、新建一个影片剪辑元件mymc,把系列图片拖到一个影片剪辑元件中,该元件第一帧停止
2、把影片剪辑元件mymc拖到舞台上,实例名称为mc
3、在第一帧加入如下代码:
var speed:Number=0.1;//速度参数,修改此参数可以调整速度
var long:int=mc.totalF//总帧数
var newX:N
var frame:Number=mc.currentF//当前是第几帧
stage.addEventListener(MouseEvent.MOUSE_DOWN,mdown);
stage.addEventListener(MouseEvent.MOUSE_UP,mup);
function mdown(e:MouseEvent):void {
newX=e.stageX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,mmove);
function mup(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mmove);
function mmove(e:MouseEvent):void {
if ((frame+(e.stageX-newX)*speed)&=1) {
&&frame=((frame+(e.stageX-newX)*speed)-1)%long+1;
} else if ((frame+(e.stageX-newX)*speed)&0) {
&&frame=long+frame+(e.stageX-newX)*
&&frame=long-Math.abs(frame+(e.stageX-newX)*speed)%
newX=e.stageX;
mc.gotoAndStop(int(frame));
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
AS3.0 3D实例:制作旋转木马效果
在这个3D旋转菜单教程中,将学习如何用AS3代码创建一个垂直的3D立体菜单效果,木马将会根据鼠标决定旋转速度。
1、新建Flash文件,设置宽、高属性为 550 × 400 。
2、用圆角矩形工具,画一个 158 × 35的长方形。笔触为8白色,填充色#0 F7E 88。图1:
3、将长方形转换成名为 & Menu Item & 的影片剪辑。设定注册点为中心。图2:
4、双击舞台上的影片剪辑,进入编辑状态。创建动态文本,在它里面输入需要的本文。图3
5、在属性面板中输入实例名字 & menuItemText& 。
6、按下字符嵌入按钮,插入下列字型。图4:
7、切换回主场景1,删除舞台上的影片剪辑,实例将由代码生成。
8、打开库元件面板,右键单击影片剪辑,(CS3选链接、CS4选属性)给元件添加一个绑定类。类名 & MenuItem& 。图5:
9、选中第1帧,打开动作面板输入代码:
//The total number of menu items
const NUMBER_OF_ITEMS:uint = 20;
//This array will contain all the menu items
var menuItems:Array = new Array();
//Set the focal length
var focalLength:Number = 350;
//Set the vanishing point
var vanishingPointX:Number = stage.stageWidth / 2;
var vanishingPointY:Number = stage.stageHeight / 2;
//We calculate the angleSpeed in the ENTER_FRAME listener
var angleSpeed:Number = 0;
//Radius of the circle
var radius:Number = 128;
//Calculate the angle difference between the menu items (in radians)
var angleDifference:Number = Math.PI * (360 / NUMBER_OF_ITEMS) / 180;
//This loop creates and positions the carousel items
for (var i:uint = 0; i & NUMBER_OF_ITEMS; i++) {
& && &&&//Create a new menu item
& && &&&var menuItem:MenuItem = new MenuItem();
& && &&&//Calculate the starting angle for the menu item
& && &&&var startingAngle:Number = angleDifference *
& && &&&//Set a &currentAngle& attribute for the menu item
& && &&&menuItem.currentAngle = startingA
& && &&&//Position the menu item
& && &&&menuItem.xpos3D =&&-&&radius * Math.cos(menuItem.currentAngle) * 0.5;
& && &&&menuItem.ypos3D = radius * Math.sin(startingAngle);
& && &&&menuItem.zpos3D = radius * Math.cos(startingAngle);
& && &&&//Calculate the scale ratio for the menu item (the further the item -& the smaller the scale ratio)
& && &&&var scaleRatio = focalLength/(focalLength + menuItem.zpos3D);
& && &&&//Scale the menu item according to the scale ratio
& && &&&menuItem.scaleX = menuItem.scaleY = scaleR
& && &&&//Position the menu item to the stage (from 3D to 2D coordinates)
& && &&&menuItem.x = vanishingPointX + menuItem.xpos3D * scaleR
& && &&&menuItem.y = vanishingPointY + menuItem.ypos3D * scaleR
& && &&&//Assign an initial alpha
& && &&&menuItem.alpha = 0.3;
& && &&&//Add a text to the menu item
& && &&&menuItem.menuItemText.text = &Menu item & +
& && &&&//We don’t want the text field to catch mouse events
& && &&&menuItem.mouseChildren =
& && &&&//Assign MOUSE_OVER, MOUSE_OUT and CLICK listeners for the menu item
& && &&&menuItem.addEventListener(MouseEvent.MOUSE_OVER, mouseOverItem);
& && &&&menuItem.addEventListener(MouseEvent.MOUSE_OUT, mouseOutItem);
& && &&&menuItem.addEventListener(MouseEvent.CLICK, itemClicked);
& && &&&//Add the menu item to the menu items array
& && &&&menuItems.push(menuItem);
& && &&&//Add the menu item to the stage
& && &&&addChild(menuItem);
//Add an ENTER_FRAME listener for the animation
addEventListener(Event.ENTER_FRAME, moveCarousel);
//This function is called in each frame
function moveCarousel(e:Event):void {
& && &&&//Calculate the angle speed according to mouseY position
& && &&&angleSpeed = (mouseY - stage.stageHeight / 2) * 0.0002;
& && &&&//Loop through the menu items
& && &&&for (var i:uint = 0; i & NUMBER_OF_ITEMS; i++) {
& && && && && & //Store the menu item to a local variable
& && && && && & var menuItem:MenuItem = (MenuItem)(menuItems);
& && && && && & //Update the current angle of the item
& && && && && & menuItem.currentAngle += angleS
& && && && && & //Calculate a scale ratio
& && && && && & var scaleRatio = focalLength/(focalLength + menuItem.zpos3D);
& && && && && & //Scale the item according to the scale ratio
& && && && && & menuItem.scaleX=menuItem.scaleY=scaleR
& && && && && & //Set new 3D coordinates
& && && && && & menuItem.xpos3D=- radius*Math.cos(menuItem.currentAngle)*0.5;
& && && && && & menuItem.ypos3D=radius*Math.sin(menuItem.currentAngle);
& && && && && & menuItem.zpos3D=radius*Math.cos(menuItem.currentAngle);
& && && && && & //Update the item’s coordinates.
& && && && && & menuItem.x=vanishingPointX+menuItem.xpos3D*scaleR
& && && && && & menuItem.y=vanishingPointY+menuItem.ypos3D*scaleR
& && &&&//Call the function that sorts the items so they overlap each other correctly
& && &&&sortZ();
//This function sorts the items so they overlap each other correctly
function sortZ():void {
& && &&&//Sort the array so that the item which has the highest&&
& && &&&//z position (= furthest away) is first in the array
& && &&&menuItems.sortOn(&zpos3D&, Array.NUMERIC | Array.DESCENDING);
& && &&&//Set new child indexes for the images
& && &&&for (var i:uint = 0; i & NUMBER_OF_ITEMS; i++) {
& && && && && & setChildIndex(menuItems, i);
//This function is called when a mouse is over an item
function mouseOverItem(e:Event):void {
& && &&&//Change the alpha to 1
& && &&&e.target.alpha=1;
//This function is called when a mouse is out of an item
function mouseOutItem(e:Event):void {
& && &&&//Change the alpha to 1
& && &&&e.target.alpha=0.3;
//This function is called when an item is clicked
function itemClicked(e:Event):void {
& && &&&trace(&Item clicked! Add your own logic here.&);
10、完成,测试你的影片。
附件: 你需要才可以下载或查看附件。没有帐号?
人生就像一部电视剧,每一个特殊场景里的对话都有我们想要述说的欲语还休……抬头仰望天空的眼瞳,是在掩饰谁的过往?
在线时间413 小时性别保密最后登录注册时间主题帖子精华0积分4630阅读权限60UID105929
青铜长老, 积分 4630, 距离下一级还需 3370 积分
钻石0 颗热心度58 威望0 金币728756 枚
回帖奖励 +5 枚金币
太棒了,左右旋转的看懂了,360全方位旋转的实现了吗?你的二楼例子可以改成360全方位的吗?我一直在找这个
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
gugunet 发表于
太棒了,左右旋转的看懂了,360全方位旋转的实现了吗?你的二楼例子可以改成360全方位的吗?我一直在找这个
全方位貌似需要PV类导入模型实现,可以任意旋转
序列帧图现在只能用全方位的序列帧图导入实现“伪”全方位观察
人生就像一部电视剧,每一个特殊场景里的对话都有我们想要述说的欲语还休……抬头仰望天空的眼瞳,是在掩饰谁的过往?
在线时间399 小时性别保密最后登录注册时间主题帖子精华0积分2589阅读权限50UID903550
支柱会员, 积分 2589, 距离下一级还需 411 积分
钻石0 颗热心度10 威望0 金币1463 枚
回帖奖励 +5 枚金币
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
附件: 你需要才可以下载或查看附件。没有帐号?
真实姓名小朱_在线时间1161 小时性别男居住地 虹口区QQ最后登录注册时间主题帖子精华0积分10365阅读权限60UID1031273
水晶长老, 积分 10365, 距离下一级还需 5635 积分
钻石0 颗热心度84 威望0 金币28903 枚
附件: 你需要才可以下载或查看附件。没有帐号?
部分带宽支持: |

我要回帖

更多关于 as3 载入flv 全屏 的文章

 

随机推荐