AS3 > 按顺序显示数组图像的按钮?

Posted

技术标签:

【中文标题】AS3 > 按顺序显示数组图像的按钮?【英文标题】:AS3 > Button to display array images in order? 【发布时间】: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
    

    

    

【问题讨论】:

【参考方案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/”添加到每个数组值。谢谢!

以上是关于AS3 > 按顺序显示数组图像的按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的应用程序从数组中显示报价,然后按顺序处理剩余的报价?

为什么图像和h3标签在不同尺寸的屏幕上按顺序显示?

如何按选择的顺序将多个文件上传到 Firebase 存储?

按接收日期的顺序显示两个自定义对象数组

li进度条宽度和颜色按顺序显示的效果。

如何显示我的数组中的所有对象,而不仅仅是 1 以及如何按顺序显示? [关闭]