在AS3.0里的代码,不知哪里出错了,求解救
package{importflash.display.MovieClip;importflash.display.Sprite;importflash.events.M...
package{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
// 文档类
public class Game extends MovieClip{
private var va:Number;//角旋转的加速度;
private var speed:Number;//角旋转的速度;
private var amc:Sprite=new Sprite();
addChild(amc);//一个空的容器,用来存放下面的循环制作的4个元件。
private var angle:Number = 360 / 4;//4个元件每个大约要转的角度。
for (var i:int=0; i<4; i++)//复制4个元件
{
private var mc:Mymc=new Mymc();
mc.txt.text = (i + 1).toString();//设定每个角上的数字。
mc.x = stage.stageWidth / 2;
mc.y = stage.stageHeight / 2;
mc.rotation = i * angle;//每隔一定的角度(angle)复制一个角。
amc.addChild(mc);//把复制的元件加入前面建立的容器。
}
amc.mask = maskmc;//给容器加圆形遮罩。maskmc是我们前面建立的圆形影片剪辑。
private var zzmc:Zz=new Zz();//新建指针实例并确定起位置。
addChild(zzmc);
zzmc.x = stage.stageWidth / 2;
zzmc.y = stage.stageHeight / 2;
private var hc:Hs=new Hs();//新建黄色按钮实例。
addChild(hc);
hc.x = stage.stageWidth / 2;
hc.y = stage.stageHeight / 2;
hc.addEventListener(MouseEvent.MOUSE_DOWN,ondown);//给按钮加鼠标按下侦听事件
private function ondown(e:MouseEvent):void
{
speed=20;//设定初始转速
va=-Math.random()*.5;//设定随机初始加速度,因为是减速运动,所以为负。
addEventListener(Event.ENTER_FRAME,onenter);//加入进入帧侦听。
}
private function onenter(e:Event):void//进入帧侦听函数
{
speed+=va;//匀减速运动的速度。
zzmc.rotation += speed;//把速度赋给指针
if (speed<0){//停止条件,当速度为负时,停止转动,移除侦听。
removeEventListener(Event.ENTER_FRAME,onenter);
}
}
}
} 展开
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
// 文档类
public class Game extends MovieClip{
private var va:Number;//角旋转的加速度;
private var speed:Number;//角旋转的速度;
private var amc:Sprite=new Sprite();
addChild(amc);//一个空的容器,用来存放下面的循环制作的4个元件。
private var angle:Number = 360 / 4;//4个元件每个大约要转的角度。
for (var i:int=0; i<4; i++)//复制4个元件
{
private var mc:Mymc=new Mymc();
mc.txt.text = (i + 1).toString();//设定每个角上的数字。
mc.x = stage.stageWidth / 2;
mc.y = stage.stageHeight / 2;
mc.rotation = i * angle;//每隔一定的角度(angle)复制一个角。
amc.addChild(mc);//把复制的元件加入前面建立的容器。
}
amc.mask = maskmc;//给容器加圆形遮罩。maskmc是我们前面建立的圆形影片剪辑。
private var zzmc:Zz=new Zz();//新建指针实例并确定起位置。
addChild(zzmc);
zzmc.x = stage.stageWidth / 2;
zzmc.y = stage.stageHeight / 2;
private var hc:Hs=new Hs();//新建黄色按钮实例。
addChild(hc);
hc.x = stage.stageWidth / 2;
hc.y = stage.stageHeight / 2;
hc.addEventListener(MouseEvent.MOUSE_DOWN,ondown);//给按钮加鼠标按下侦听事件
private function ondown(e:MouseEvent):void
{
speed=20;//设定初始转速
va=-Math.random()*.5;//设定随机初始加速度,因为是减速运动,所以为负。
addEventListener(Event.ENTER_FRAME,onenter);//加入进入帧侦听。
}
private function onenter(e:Event):void//进入帧侦听函数
{
speed+=va;//匀减速运动的速度。
zzmc.rotation += speed;//把速度赋给指针
if (speed<0){//停止条件,当速度为负时,停止转动,移除侦听。
removeEventListener(Event.ENTER_FRAME,onenter);
}
}
}
} 展开
1个回答
展开全部
楼主初学在as3类文件写代码吧
主要错误就是没有初始化函数,代码不能直接写在类里,必须写在函数里
我把正确的代码给你贴上:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class Game extends MovieClip
{
/**
* 角旋转的加速度
*/
private var va:Number;
/**
* 角旋转的速度
*/
private var speed:Number;
/**
* 容器
*/
private var amc:Sprite = new Sprite();
/**
* 4个元件每个大约要转的角度
*/
private var angle:Number = 360 / 4;
/**
* 新建指针实例并确定起位置。
*/
private var zzmc:Zz = new Zz();
/**
* 新建黄色按钮实例。
*/
private var hc:Hs = new Hs();
/**
* 类
*/
public function Game()
{
super();
// 侦听添加到舞台事件然后初始化
addEventListener(Event.ADDED_TO_STAGE,init);
}
/**
* 初始化
*/
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE,init);
//一个空的容器,用来存放下面的循环制作的4个元件。
addChild(amc);
//复制4个元件
for(var i:int = 0;i < 4;i++)
{
var mc:Mymc = new Mymc();
//设定每个角上的数字。
mc.txt.text = (i + 1).toString();
mc.x = stage.stageWidth / 2;
mc.y = stage.stageHeight / 2;
//每隔一定的角度(angle)复制一个角。
mc.rotation = i * angle;
//把复制的元件加入前面建立的容器。
amc.addChild(mc);
}
//给容器加圆形遮罩。maskmc是我们前面建立的圆形影片剪辑。
amc.mask = maskmc;
addChild(zzmc);
zzmc.x = stage.stageWidth / 2;
zzmc.y = stage.stageHeight / 2;
addChild(hc);
hc.x = stage.stageWidth / 2;
hc.y = stage.stageHeight / 2;
//给按钮加鼠标按下侦听事件
hc.addEventListener(MouseEvent.MOUSE_DOWN,ondown);
}
/**
* 鼠标事件
*/
private function ondown(e:MouseEvent):void
{
//设定初始转速
speed = 20;
//设定随机初始加速度,因为是减速运动,所以为负。
va = -Math.random() * 0.5;
//加入进入帧侦听。
addEventListener(Event.ENTER_FRAME,onenter);
}
/**
* 帧刷新
*/
private function onenter(e:Event):void
{
//匀减速运动的速度。
speed += va;
//把速度赋给指针
zzmc.rotation += speed;
if(speed < 0)
{
//停止条件,当速度为负时,停止转动,移除侦听。
removeEventListener(Event.ENTER_FRAME,onenter);
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询