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
Flash 拖动不处理从Moviclip继承的自定义类_Flash_Actionscript 3 - Fatal编程技术网

Flash 拖动不处理从Moviclip继承的自定义类

Flash 拖动不处理从Moviclip继承的自定义类,flash,actionscript-3,Flash,Actionscript 3,编辑:如果我有一个名为Items的类,它有一个movieclip实例,该实例是从url加载的。项目上的startDrag失败。如果项目包含我们从SWC启动的movieclip,则在拖动时不加载它可以正常工作 现在如何解决这个问题,我有一个类,它有一个从外部加载的movieClip 我有以下代码: 包装{ 导入flash.display.Sprite; 导入flash.events.MouseEvent import lib.CustomEvents.ItemLoadCompleteEvent;

编辑:如果我有一个名为Items的类,它有一个movieclip实例,该实例是从url加载的。项目上的startDrag失败。如果项目包含我们从SWC启动的movieclip,则在拖动时不加载它可以正常工作

现在如何解决这个问题,我有一个类,它有一个从外部加载的movieClip

我有以下代码:

包装{ 导入flash.display.Sprite; 导入flash.events.MouseEvent

import lib.CustomEvents.ItemLoadCompleteEvent;
import lib.Room.Item;
import lib.Room.ItemStruct;

public class DragTest extends Sprite
{
    private var itemInstance:Item;
    public function DragTest()
    {
        var tempItemStruct:ItemStruct = new ItemStruct("test",0,0,200,250,"wall","","inventory");
        itemInstance = new Item(tempItemStruct);
        itemInstance.addEventListener(ItemLoadCompleteEvent.CONTROL_TYPE,loadComplete);

        stage.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
    }

    private function loadComplete(e:ItemLoadCompleteEvent):void
    {
        itemInstance.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
        this.addChild(itemInstance);

    }

    private function mouseUp(e:MouseEvent):void
    {
        itemInstance.stopDrag();
        trace("MouseUp");
    }

    private function mouseDown(e:MouseEvent):void
    {
        itemInstance.startDrag();
        trace("MouseDown");

    }

}
}
我在一个普通的剪辑中使用了相同的代码,它是有效的。当我在自己定义的项目中使用它时,它不起作用。下面是详细信息

itemStruct:包含要生成的项的属性。 item:加载itemstruct定义的项并将其放入从movieclip继承的movieclip项中

上面代码的跟踪显示,只有mouseUp函数起作用,mouseDown不起作用

我已经试过了

stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);

编辑:如果我在项目外部单击并从阶段中拖动鼠标,我尝试再次将鼠标向下放置在阶段上。鼠标向下和向上似乎都起作用。但是如果我单击项目并拖动,仍然没有成功。我还将项目作为movieclip添加到阶段上。

事件可能是从加载的剪辑中发送的,而不是项目本身。尝试使用鼠标技术用于捕获所有事件的ildren属性

 item.mouseChildren = false;

我已经设法使它工作了,但是我仍然需要一个解决方案来将mouseDown附加到movieclip的父类上。它仍然在直接movieclip本身上工作。