0

我有一个 Movieclip,它是另一个 Movieclip 的子级。我将 startDrag() 和 stopDrag() 与第一个(父)影片剪辑一起使用,但嵌套的影片剪辑不移动。为什么?

舞台相关代码:

var main:rt = new rt(); // rt being a class in my library, which extends MovieClip object.
addChild(main);

stage.addEventListener(MouseEvent.MOUSE_DOWN, stage_mousedownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseupHandler);


function stage_mousedownHandler(event_object:Event) {
    main.startDrag();       
}

function stage_mouseupHandler(event_object:Event) {
    main.stopDrag();
}

rt的构造函数代码:

public function rt() {

   var bmp_bar:Bitmap;
   var br_male:Bar_male; // Bar_male is a Bitmap in my library. (AS Linkage)

   bmp_bar = new Bitmap(br_male);
   this.addChild(bmp_bar);
}
4

1 回答 1

2

制作了这个简单的程序进行测试,它在 Flash Develop 中按预期工作,当我在舞台上任何位置拖动主精灵并移动子位图时,都会有一个主精灵和一个子位图。

所以我猜你的 Flash Professional 和链接工作流程中发生了一些事情。确保触发鼠标事件处理程序放置一些断点并进行调试。

package  
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.geom.Rectangle;

    public class Test extends Sprite
    {
        private var sp:Sprite = new Sprite();

        public function Test() 
        {
            addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        }

        private function onAddedToStage(e:Event):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);

            var bmpData:BitmapData = new BitmapData(100, 100,false,0x000000);
            bmpData.fillRect(new Rectangle(0, 0, 100, 100), 0xff0000);

            var bmp:Bitmap = new Bitmap(bmpData);

            sp.addChild(bmp);

            addChild(sp);

            stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
            stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        }

        private function onMouseUp(e:MouseEvent):void 
        {
            sp.stopDrag();
        }

        private function onMouseDown(e:MouseEvent):void 
        {
            sp.startDrag();
        }

    }

}
于 2012-06-21T17:42:33.133 回答