旋转菜单的制作-AS3.0实例

1、新建一个Flash文件,宽550高400像素,背景为黑色。保存文件。

2、用椭圆工具,画一个边框白色,填充为红色的27*27的圆形。图1:

3、按F8键,把圆形转换成影片剪辑,如下设置:图2。

4、按Ctrl+L组合键,打开库双击Item影片剪辑进入编辑状态。锁定图层1,添加图层2。在圆形的中心添加一个动态文本。图3:

5、在属性面板中命名为“itemText”并输入一个数字,颜色为白色,大小为14至17左右。点击“字符嵌入”按钮,设置如图4:

6、动画部分的制作已经完成,下面进入as部分。将由代码产生所有的效果。

7、新建一个ActionScript文件,编写一个名为“Item.as”的外部类文件。代码如下:

  1. package { 

            import flash.display.MovieClip; 

            public dynamic class Item extends MovieClip { 

                    public function Item() { 

                    } 

            } 

    }

保存在fla文件的同一目录下。

8、返回到场景1,在图层1的第一帧输入代码:

//Save the center coordinates of the stage

var centerX:Number = stage.stageWidth / 2;

var centerY:Number = stage.stageHeight / 2;

//The number of items we will have (feel free to change!)

var NUMBER_OF_ITEMS:uint = 15;

//Radius of the menu circle (horizontal and vertical)

var radiusX:Number = 200;

var radiusY:Number = 100;

//Angle difference between the items (in radians)

var angleDifference:Number = Math.PI * (360 / NUMBER_OF_ITEMS) / 180;

//How fast a single circle moves (we calculate the speed

//according to the mouse position later on...)

var angleSpeed:Number = 0;

//Scaling speed of a single circle

var scaleSpeed:Number = 0.0002;

//This vector holds all the items

//(this could also be an array...)

var itemVector:Vector.<Item> = new Vector.<Item>  ;

//This loop creates the items and positions them

//on the stage

for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {

                 //Create a new menu item

        var item:Item = new Item();

                 //Get the angle for the item (we space the items evenly)

        var startingAngle:Number = angleDifference*i;

                 //Set the x and y coordinates

        item.x = centerX + radiusX * Math.cos(startingAngle);

        item.y = centerY + radiusY * Math.sin(startingAngle);

                  //Save the starting angle of the item.

        //(We have declared the Item class to be dymamic. Therefore,

        //we can create new properties dynamically.)

        item.angle = startingAngle;

                 //Add an item number to the item’s text field

        item.itemText.text = i.toString();

                 //Allow no mouse children

        item.mouseChildren = false;

                 //Add the item to the vector

        itemVector.push(item);

                 //Add the item to the stage

        addChild(item);

}

//We use ENTER_FRAME to animate the items

addEventListener(Event.ENTER_FRAME, enterFrameHandler);

//This function is called in each frame

function enterFrameHandler(e:Event):void {

                 //Calculate the angle speed according to mouse position

        angleSpeed = (mouseX - centerX) / 5000;

                //Loop through the vector

        for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {

                                   //Save the item to a local variable

                var item:Item = itemVector[i];

                                   //Update the angle

                item.angle += angleSp

                                   //Set the new coordinates

                item.x = centerX + radiusX * Math.cos(item.angle);

                item.y = centerY + radiusY * Math.sin(item.angle);

                                   //Calculate the vertical distance from centerY to the item

                var dy:Number = centerY - item.y;

                                   //Scale the item according to vertical distance

                item.scaleY = (dy / radiusY);

                                   //If we are above centerY, double the y scale

                if (item.y<centerY) {

                        item.scaleY *= 2;

                }

                                   //Set the x scale to be the same as y scale

                item.scaleX = item.scaleY;

                                   //Adjust the alpha according to y scale

                item.alpha = item.scaleY + 1.1;

                  }

}
9、好了,测试影片。

附件下载:菜单.rar

时间: 2024-10-03 01:03:12

旋转菜单的制作-AS3.0实例的相关文章

AS3.0实例之时钟的制作方法

一. AS3.0时间日期简介 时间和日期主要应用在读取时间日期和设置时间间隔两个方面.在AS3.0中时间日期仍然是用Date类来读取,与AS2.0相比3.0要获取时间日期更加方便一些.同样的要使用Date类首先要创建该类的一个实例,比如: var nowtime:Date = new Date(); 这样就获得了一个Date的实例:nowtime 直接调用Date实例的一些属性即可获得当前日期和时间,例: nowtime.fullYear 当前年份 nowtime.month+1 当前月,mon

Flash实例教程:AS3.0打造漂亮水纹效果

在这个Flash AS3.0实例教程中,我们将用到置换图滤镜(DisplacementMapFilter)和BitmapData类的的杂点功能(perlinNoise),这两个家伙常常给我们带一些令人兴奋的效果,它们今天的合作为我们创造了一个漂亮的的水汶 现在我开始来构建这个漂亮的水纹: 既然是水纹,我想首先要找一张含水的图片吧,百度一下吧,河道,湖泊,水池,你喜欢就行. 1.新建一AS3.0文档,将帧频设为30,将你刚百度到的图片导入到库中,点右键,在属性面板中将"使用JPEG导入品质&quo

Flash制作时钟的实例教程

核心提示:Flash制作时钟的实例教程. 本例为用Flash AS3.0制作时钟的实例教程,为Flash AS入门教程第八课的延伸教程,希望能给朋友们带来帮助. AS3.0实例教程二-时钟的制作 效果: 虽然制作时钟老套了点,但它确可以较全面地应用到时间日期和间隔等知识,仍不失为较好的入门练习. 一. AS3.0时间日期简介 时间和日期主要应用在读取时间日期和设置时间间隔两个方面.在AS3.0中时间日期仍然是用Date类来读取,与AS2.0相比3.0要获取时间日期更加方便一些.同样的要使用Dat

Flash AS3.0构建简单的声音可视化程序(波型图)

本例为Flash AS3.0实例教程,在教程中我们将学习运用SoundMixer.computeSpectrum() 方法来构建简单的声音可视化程序(即波形图),希望能给朋友们带来帮助~~ AS3.0构建简单的声音可视化程序(波型图): 开发"> 使用 SoundMixer.computeSpectrum() 方法来显示声音波形图: import flash.display.Graphics; import flash.events.Event; import flash.media.So

Android5.0 旋转菜单实例详解_Android

先给大家展示下效果图: 这个效果是安卓5.0推出 "材料设计" Ui效果 以前一直没留意到,写篇文章当成备忘录 上面的效果图 用 DrawerLayout和Toolbar实现 布局如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x

Android5.0 旋转菜单实例详解

先给大家展示下效果图: 这个效果是安卓5.0推出 "材料设计" Ui效果 以前一直没留意到,写篇文章当成备忘录 上面的效果图 用 DrawerLayout和Toolbar实现 布局如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x

Android圆形旋转菜单开发实例_Android

最近帮朋友做了一个动画菜单,感觉有一定的实用价值,就在此给大家分享一下,先看看效果: 实现思路: 从图中可以看出,这三个(或更多,需要自己再实现)菜单是围绕着中心点旋转的,旋转分为2层,背景旋转和菜单旋转,背景旋转可以直接用旋转动画来实现:菜单的旋转是在以中心点为圆心的圆环上,所以这里用了根据旋转角度求此点在直角坐标系中的坐标点的函数(x = r * cos(rotation* 3.14 / 180) 和y = r * sin(rotation* 3.14 / 180) ),然后根据获取到的点的

汇编源代码之汇编语言制作的光带菜单及源程序(1.0)

这个是我上大二的时候的汇编语言课程设计.自己做得很满意.现在拿出来,给大家看看.我对部分代码又从新做了调整.编译后大小比原来大了一点,不过速度上去了.其实就是一个图形接口.你只要在中间加上自己的实用功能,就可以直接用了.代码我都有注释,读起来应该不会有什么问题.当然,汇编的代码本身就很难读.所以有什么不是很好懂的地方,可以直接同我联系. 我还给同学做过一个C语言版的光带菜单,不过很可惜的是自己做得不是很满意,就把程序给删掉了.大家也就看不到了 本程序用 tasm 进行编译,tlink 进行连接.

Android编程实现仿优酷旋转菜单效果(附demo源码)_Android

本文实例讲述了Android编程实现仿优酷旋转菜单效果.分享给大家供大家参考,具体如下: 首先,看下效果: 不好意思,不会制作动态图片,只好上传静态的了,如果谁会,请教教我吧. 首先,看下xml文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" a