画出来的Sprite和用代码编的Sprite有什么不同呢
帮忙看下,我直接画个—_mc编译时能过,用代码画测试时就出不来,怎么回事
var vx:Number ;
var vy:Number ;
var ox:Number ;
var oy:Number ;
var right:Number=stage.stageWidth-50;
var left:Number=0;
var top:Number=0;
var bottom:Number=stage.stageHeight-50;
var gravity:Number=5;
var friction:Number=.95;
var _mc:Sprite=new Sprite();
function drawball():void{
_mc.graphics.beginFill(0xffff00);
_mc.graphics.drawCircle(200,200,26);
_mc.graphics.endFill();
}
drawball();
stage.scaleMode=StageScaleMode.NO_BORDER;
stage.align=StageAlign.TOP_LEFT;
addEventListener(Event.ENTER_FRAME,calcu);
_mc.addEventListener(MouseEvent.MOUSE_DOWN,down);
function down(event:MouseEvent):void {
ox=_mc.x;
oy=_mc.y;
_mc.startDrag();
_mc.addEventListener(MouseEvent.MOUSE_UP,up);
removeEventListener(Event.ENTER_FRAME,calcu);
addEventListener(Event.ENTER_FRAME,trackv);
}
function up(event:MouseEvent):void{
_mc.stopDrag();
_mc.removeEventListener(MouseEvent.MOUSE_UP,up);
removeEventListener(Event.ENTER_FRAME,trackv);
addEventListener(Event.ENTER_FRAME,calcu);
}
function trackv(event:Event):void{
vx=_mc.x-ox;
vy=_mc.y-oy;
ox=_mc.x;
oy=_mc.y;
}
function calcu(event:Event):void {
ox=_mc.x;
oy=_mc.y;
vy+=gravity;
vx*=friction;
vy*=friction;
_mc.x+=vx;
_mc.y+=vy;
if(_mc.x>right){
_mc.x=right;
vx*=-.8;}
else if(_mc.x<left){
_mc.x=left;
vx*=-.8;}
if(_mc.y>bottom){
_mc.y=bottom;
vy*=-.8;}
else if(_mc.y<top){
_mc.y=top;
vy*=-.8;}
}
[ 本帖最后由 liuyunclouder 于 2008-8-9 13:35 编辑 ]