打印

[AS3] 画出来的Sprite和用代码编的Sprite有什么不同呢

画出来的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 编辑 ]
要addChild(_mc);
这就是区别 ,不能忘记的
是啊,addChild...