【问题标题】:AS3 > Button to display array images in order?AS3 > 按顺序显示数组图像的按钮?
【发布时间】:2011-11-10 23:44:02
【问题描述】:

制作一个按钮来按顺序显示图像,根据它们在数组中的位置有多难?

NEXTPREVIOUS 按钮我需要这个。检查下面的数组。

数组:

private var images:Array = ["Layer_1.jpg", "Layer_2.jpg", "Layer_3.jpg", "Layer_4.jpg", "Layer_5.jpg", "Layer_6.jpg", "Layer_7.jpg", "Layer_8.jpg"];

按钮:

        private var triangleButton:triangle = new triangle;
        //to call the function slideGames
        triangleButton.addEventListener(MouseEvent.CLICK, slideGames);

加载器:

    private var loader:Loader = new Loader();

完整代码:

package {

import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.MovieClip;


    public class play extends MovieClip {

        private var loader:Loader = new Loader();

        private var images:Array = ["Layer_1.jpg", "Layer_2.jpg", "Layer_3.jpg", "Layer_4.jpg", "Layer_5.jpg", "Layer_6.jpg", "Layer_7.jpg", "Layer_8.jpg"];
        private var triangleButton:triangle = new triangle;

           public function play() {
               loader.load(new URLRequest("img/Layer_1.jpg"));
                addChild(loader);
                addChild(triangleButton);

                triangleButton.x = 600;
                triangleButton.y = 200;

                triangleButton.addEventListener(MouseEvent.CLICK, slideGames);



    function slideGames(event:MouseEvent):void
    {

    }

    }
}}

【问题讨论】:

    标签: arrays actionscript-3 button


    【解决方案1】:

    试试这个:

    package {
    
      import flash.display.Loader;
      import flash.net.URLRequest;
      import flash.events.Event;
      import flash.display.Sprite;
      import flash.events.MouseEvent;
      import flash.display.MovieClip;
    
    
      public class play extends MovieClip {
    
        private var loader:Loader = new Loader();
    
        private var images:Array = ["Layer_1.jpg", "Layer_2.jpg", "Layer_3.jpg", "Layer_4.jpg", "Layer_5.jpg", "Layer_6.jpg", "Layer_7.jpg", "Layer_8.jpg"];
        private var triangleButton:triangle = new triangle;
    
        public function play() {
          loadNextImage();
    
          addChild(loader);
          addChild(triangleButton);
    
          triangleButton.x = 600;
          triangleButton.y = 200;
    
          triangleButton.addEventListener(MouseEvent.CLICK, slideGames);
        }
    
    
    
        public function slideGames(event:MouseEvent):void {
          loadNextImage();
        }
    
        public function loadNextImage() : void {
          // Increment the image
          _imageIndex++;
    
          // If we've reached the end of the array, start over
          if (_imageIndex >= images.length) {
            _imageIndex = 0;
          }
    
          // Now get the image source from the array and tell the loader to load it
          var imageSource : String = images[_imageIndex] as String;
          loader.load(new URLRequest(imageSource));
        }
        // Next image to display
        protected var _imageIndex : int = -1;
      }
    }
    

    基本思想是保留一个整数指针,指向要显示的下一张图像。当您显示下一个图像时,增加此指针。如果超过图像源数组的长度,则将其重置为0。

    该指针从 -1 开始,因此它第一次递增时的值为 0。

    您应该能够轻松处理前一种情况 - 只需减小指针,而不是检查它是否大于数组长度,而是检查它是否小于零并将其设置为 images.length-1。

    【讨论】:

    • 谢谢,看起来很干净。但是我得到了这个输出Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 顺便说一句,图像应该在根文件夹中吗?还是在图书馆?
    • 我不知道,这很大程度上取决于您的项目设置。
    • 好的,想通了,在 img/ 文件夹中的图像,我只是将“img/”添加到每个数组值。谢谢!
    猜你喜欢
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2018-11-29
    相关资源
    最近更新 更多