0

ズーム可能で、スライドしてナビゲートし、ユーザーがズームした画像を最も右/左にスライドすると次のコンテンツにスライドする Android ギャラリーのようなギャラリーを作成する方法。

また、コンテンツ(ムービークリップ)にボタンやスライダーなどのインタラクティブなオブジェクトが含まれる場合がありますが、1フィンガーナビゲーション(タッチイベント)で作成できますか? そうでない場合は、2 本指のナビゲーション (パンニング) を使用する必要があります。

私はすでにグーグルでいくつかの検索を行っていますが、トピックはFlash Airには珍しいので、まだ見つけていません.

ありがとうございました。

4

1 に答える 1

0

それを分解するには、最初に自己完結型ローダーから画像をロードするか、ユーザーにファイルを選択するオプションを与える必要があります: load image by user :

     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のいずれかを使用して各オブジェクトを取得します..それが役立つことを願っています

于 2013-05-08T13:08:14.997 に答える