如何在Flash AIR中创建像Android画廊一样的画廊



如何创建像Android图库一样的可缩放图库,滑动导航,并在用户将图像缩放到最右/最左时滑动到下一个内容

此外,内容(MovieClip)可能包含交互式对象,如按钮&滑块,是否可以创建1指导航(触摸事件)?如果没有,也许应该使用两指导航(平移)。

我已经在谷歌上做了一些搜索,但这个主题对Flash Air来说并不常见,所以我还没有找到它。

谢谢。

要打破它,你首先需要从一个自包含加载器加载你的图像,或者给用户一个选择文件的选项:用户加载图像:

     var holder = new movieClip;
     Addchild(holder)
     var file:FileReference;
     var fileLoader:Loader;
      function start()
      {
      loadImageBtn.addEventListener(MouseEvent.CLICK, showDialog);
      }
      start();
      function showDialog(event:MouseEvent):void
      {
      file = new FileReference();
      var imageFileTypes:FileFilter = new FileFilter("Images (*.png; ","*.png;");
      file.browse([imageFileTypes]);
      file.addEventListener(Event.SELECT, selectFile);
       }
       function selectFile(e:Event):void
       {
      file.addEventListener(Event.COMPLETE, loadFile);
      file.load();
       }
       function loadFile(e:Event):void
       {
   fileLoader = new Loader();
   fileLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, displayImage);
   fileLoader.loadBytes(file.data);
       }
       function displayImage(e:Event):void
       {
   holder.addChild(fileLoader);
       }

然后你需要能够移动内容:

       var maxY:Number = 0;
       var minY:Number = Math.min(0,stage.stageHeight - holder.height - 300);
       var _startY:Number;
       var _startMouseY:Number;
       addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
       function mouseDownHandler(event:MouseEvent):void
       {
   _startY = holder.y;
   _startMouseY = mouseY;
   stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, false, 0, true);
   stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, false, 0, true);
       }
       function stage_mouseMoveHandler(event:MouseEvent):void
       {
   var offsetY:Number = mouseY - _startMouseY;
   holder.y = Math.max(Math.min(maxY,_startY + offsetY),minY);
       }
       function stage_mouseUpHandler(event:MouseEvent):void
       {
   stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler);
   stage.removeEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler);
       }

如果你像我想象的那样需要几张图片,你可以对它们进行读写,将每张图片放入一个数组中进行存储,并将每个项目放置在一个网格类型的模式中,或者放置在一个由它们自己的高度或宽度分隔的列中。

            var array()
        for (i = 0; i <items; i++)
    {
        items.x =  170+ i * (item.width + 1);
                    //you can add child
    }

一个更好的选择可能是每个语句,使用数组或xml来获取每个对象..希望它有助于

相关内容

最新更新