Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 将电影剪辑拖动为3_Actionscript 3_Flash_Actionscript_Drag - Fatal编程技术网

Actionscript 3 将电影剪辑拖动为3

Actionscript 3 将电影剪辑拖动为3,actionscript-3,flash,actionscript,drag,Actionscript 3,Flash,Actionscript,Drag,我有一个电影唇,是另一个电影唇的孩子。我对第一个(父)Movieclip使用startDrag()和stopDrag(),但嵌套的Movieclip不移动。为什么? 舞台上的相关代码: 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 Bitm

我有一个电影唇,是另一个电影唇的孩子。我对第一个(父)Movieclip使用startDrag()和stopDrag(),但嵌套的Movieclip不移动。为什么?

舞台上的相关代码: 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);
}

对这个简单的程序进行了测试,它在Flash开发中的工作与预期一样,当我将鼠标放在舞台上拖动主精灵并移动子位图的任何位置时,会有一个主精灵和一个子位图

所以我猜你在FlashProfessional和linkage的工作流程中有一些事情。确保已触发鼠标事件处理程序并放置一些断点并进行调试

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();
        }

    }

}

@巴里斯·乌萨克利对不起,应该说得更清楚些。编辑了我的第一篇文章。你确定rt下有孩子吗?当您在as3中创建子级并将其添加到main时,它是否会随之移动?@Baris Usakli在“rt”类的构造函数中,我从库中添加了一个位图作为rt的子级。如您所见,然后rt被添加到main阶段。我可以看到位图出现,所以我确定rt下有一个子对象。但我仍然无法拖动它。因为您在主对象上调用startDrag,它将只拖动main,但它的子对象应该随它一起移动。请添加rt的构造函数代码。您确定要将rt()放在它自己的文件中吗?我唯一能想到的就是(this.addChild)对文档类进行范围界定。
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();
        }

    }

}