使用ItemRenderer在Tilelist中拖放问题

时间:2008-11-11 21:30:00

标签: flex flash actionscript-3 drag-and-drop tilelist

在我的flex应用程序中,我创建了一个Tilelist。在这个Tilelist中,我使用ItemRenderer在每个tile中创建一个由图像和VSlider组成的框。

单击图像时,图块需要可拖动,但滑动滑块时不能拖动。我怎样才能做到这一点?我一直在谷歌上搜索有一天,我真的不知道。

我期待着你的帮助。 谢谢。

2 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法,但可能不是最好的方法。

使用此:

        public var overImage:Boolean = false;

        public function checkAllow(evt:DragEvent):void {

            if(overImage == false)
            {
                evt.preventDefault()
            }
        }

        public function isOverImage():void {
            overImage = true;
        }

        public function isOutImage():void {
            overImage = false;
        }

我将这些函数称为:

在我的图片组件

mouseOver="outerDocument.isOverImage()" mouseOut="outerDocument.isOutImage()"

对于我的瓷砖列表,我做了这个

Tiles.addEventListener(DragEvent.DRAG_START, checkAllow);

希望它可以帮助一些人。

答案 1 :(得分:0)

            if(event.target is ScrollThumb )
        {
            return;
        }

通过在imageDragStart方法中返回sroller的scrollThumb属性来解决问题...

BackGround:我的TileList随mouseDown =“event.currentTarget.addEventListener(MouseEvent.MOUSE_MOVE,imageDragStart)”提供;

正在影响完整的TileList以及滚动条,

以上是临时解决方案,但期待专家建议。

基本上这适用于Native应用程序(AIR),使用NativeDragStart。但我被迫在我的TileList上使用mouseDown来调用我的imageStartDrag()方法....