AS3 > 按顺序显示数组图像的按钮?
Posted
技术标签:
【中文标题】AS3 > 按顺序显示数组图像的按钮?【英文标题】:AS3 > Button to display array images in order? 【发布时间】:2011-11-10 23:44:02 【问题描述】:制作一个按钮来按顺序显示图像,根据它们在数组中的位置有多难?
NEXT 和 PREVIOUS 按钮我需要这个。检查下面的数组。
数组:
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 > 按顺序显示数组图像的按钮?的主要内容,如果未能解决你的问题,请参考以下文章