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 mx:TileList:为什么拖动不';如果allowMultipleSelection处于激活状态,则t工作_Actionscript 3_Air_Flash Builder - Fatal编程技术网

Actionscript 3 mx:TileList:为什么拖动不';如果allowMultipleSelection处于激活状态,则t工作

Actionscript 3 mx:TileList:为什么拖动不';如果allowMultipleSelection处于激活状态,则t工作,actionscript-3,air,flash-builder,Actionscript 3,Air,Flash Builder,我使用TileList像画廊一样显示图像。 开始时,我只激活拖动选项 <mx:TileList xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" columnWidth="120" rowHeight="150"

我使用TileList像画廊一样显示图像。 开始时,我只激活拖动选项

<mx:TileList xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark"
         xmlns:mx="library://ns.adobe.com/flex/mx"
         columnWidth="120"
         rowHeight="150"
         paddingLeft="2"
         paddingRight="2"
         paddingTop="2"
         paddingBottom="2"
         itemRenderer="fr.ui.display._43Imagerie.TileUnit2"
         doubleClickEnabled="true"
         dragEnabled="true"
         dropEnabled="true"
         dragMoveEnabled="true"
         verticalScrollPolicy="on"
         >

现在我尝试添加多重选择的可能性

项目渲染器是:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
       verticalScrollPolicy="off" 
       horizontalScrollPolicy="off"
       width="120"
       height="150"
       borderVisible="false"
       xmlns:s="library://ns.adobe.com/flex/spark"
       creationComplete="onEvent()"

       >
<mx:Script>
    <![CDATA[
        import fr.util.imageTransform;

        import mx.controls.Image;
        import mx.core.UIComponent;
        import mx.events.DragEvent;
        import mx.managers.DragManager;

        import org.osmf.utils.URL;

        import spark.effects.Rotate;

        [Bindable]
        [Embed(source="icon/imagerie/rotate.png")]
        private var rotationArrowClass:Class;

        private var _file:File;
        private var _selected:Boolean;
        private var _sauvBMD:BitmapData;
        public var wasScaled:Boolean = false;
        public var deleted:Boolean = false;
        private var bgCenterX:Number;
        private var bgCenterY:Number;
        private var _dragDownPt:Point;

        [Bindable]
        public var angle:int = 0;

        private var dragBitmapData : BitmapData;

        private function onEvent():void
        {
            // iconCanvas.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
            // double click gere ds wPlanchePhoto3

        }








        private function rotationImage(e:MouseEvent):void
        {

            var rot:Rotate = new Rotate();
            rot.angleBy = 90;
            rot.duration = 1000;
            rot.autoCenterTransform = true;
            rot.target = iconCanvas;
            rot.play();

        }

        private function radiansToDegrees(radians:Number):Number {
            var degrees:Number = radians * (180 / Math.PI);
            return degrees;
        }

        private function degreesToRadians(degrees:Number):Number {
            var radians:Number = degrees * (Math.PI / 180);
            return radians;
        }

        public function set image(im:BitmapData):void
        {
            this._sauvBMD=im;
        }

        public function get image() :BitmapData
        {
            return this._sauvBMD;
        }



        protected function iconCanvas_mouseDownHandler(event:MouseEvent):void
        {

            // on enregistre la point de départ 
            _dragDownPt = new Point(mouseX,mouseY); 
            // puis on écoute l'éventuel déplacement de la souris 
            this.addEventListener(MouseEvent.MOUSE_MOVE,_onMouseMoveDuringDrag);


        }

        private function _onMouseMoveDuringDrag(evt:MouseEvent):void {
            // astuce pour s'assurer que la souris a vraiment bougee volontairement 
            if(Math.abs(_dragDownPt.x - mouseX) <= 2 && Math.abs(_dragDownPt.y - mouseY) <= 2)
                return; 

            else{
                dragBitmapData = new BitmapData(iconCanvas.width, iconCanvas.height,true, 1);
                dragBitmapData.draw(iconCanvas);

                var transfert:Clipboard = new Clipboard();
                transfert.setData(ClipboardFormats.BITMAP_FORMAT,Bitmap(iconCanvas.content).bitmapData);

                // only allow the file to be copied
                var dragOptions:NativeDragOptions = new NativeDragOptions();
                dragOptions.allowMove=false;
                dragOptions.allowCopy = true;
                dragOptions.allowLink = false;

                // begin the drag
                NativeDragManager.doDrag(this, transfert, dragBitmapData, null, dragOptions);
            }
            // dispatch de l'event depuis le parent pour pouvoir écouter cet event dans l'application 
        }



    ]]>
</mx:Script>

<s:BorderContainer
                   id="bcImage"
                   width="120"
                   height="99%"
                   borderVisible="true"
                   borderColor="#FFFFFF"
                   borderWeight="1"
                   cornerRadius="6"
                   backgroundAlpha=".4"
                   backgroundColor="#5f5f5f"
                   >




    <mx:Canvas id="cvsImage" width="100%">
        <mx:SWFLoader id="rotationArrow" source="{rotationArrowClass}" height="18" width="18" x="3" y="3" visible="true" click="rotationImage(event);" alpha=".5"/>
        <s:Label x="23" y="3" width="82" fontSize="11" fontWeight="normal" text="{data.imDate}"
                 textAlign="right" color="#000000"/>    


        <mx:Image id="iconCanvas" x="10" y="20" width="99" height="99" horizontalAlign="center"
                  maintainAspectRatio="true" scaleContent="true"
                  source="{data.imURL}" 
                  verticalAlign="middle" mouseDown="iconCanvas_mouseDownHandler(event)"
                  >

        </mx:Image>
    </mx:Canvas>

    <s:VGroup width="100%" y="124" height="25" bottom="1" left="3" right="3" paddingBottom="0" paddingTop="4" gap="0">
        <s:Label text="{data.imType}" height="50%" fontSize="10" paddingBottom="1"
                 fontWeight="normal" width="99%" textAlign="center" color="#000000"/>
        <s:Label text="{data.imStade}" fontSize="10" textAlign="center" paddingTop="1"
                 fontWeight="normal" width="99%" color="#000000"/>  

    </s:VGroup>

</s:BorderContainer>

如果此选项为真(allowMultipleSelection),请拖动“停止”以工作,您知道原因吗


谢谢您的帮助。

添加allowMultipleSelection=“true”对我来说效果很好。我在Mac电脑上运行最新版本的Flash Player。起初它看起来有点不稳定,但在刷新页面后,它工作得很好。我的项目中唯一没有的东西是您的数据提供程序和项目呈现程序。我真的怀疑你的物品渲染器会引起问题,除非你在那里做了一些疯狂的事情。查看您是否有最新的Flash Player。

我正在Mac上工作。我有最新版本的Flash Player。ThanksI刚刚从上面的更新中引入了项目渲染器,使用multiSelect它仍然可以正常工作。我唯一改变的是注释掉了//[Bindable]/[Embed(source=“icon/imagerie/rotate.png”)]。检查你的AIR版本(现在我意识到这是一个AIR应用程序…我的错)。