Вот пример, показывающий, как отобразить случайный экранный объект после щелчка по сцене:
Main.as (класс документа) :
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends Sprite
{
private var _sprites:Vector.<Sprite>;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
_sprites = new Vector.<Sprite>();
for (var i:int = 0; i < 3; i++)
{
var sprite:Sprite = new Sprite();
sprite.graphics.beginFill(0xFF0000);
sprite.graphics.drawRect(0, 0, 100, 100);
sprite.graphics.endFill();
sprite.x = ((sprite.width + 50) * i);
sprite.y = 0;
addChild(sprite);
_sprites.push(sprite);
}// end for
hideSprites();
stage.addEventListener(MouseEvent.CLICK, onClick);
}// end function
private function onClick(e:MouseEvent):void
{
showSprite();
}// end function
private function showSprite():void
{
hideSprites();
(_sprites[random(0, 2)] as Sprite).alpha = 1;
}// end function
private function hideSprites():void
{
for each(var sprite:Sprite in _sprites)
{
sprite.alpha = 0;
}// end for each
}// end function
private function random(min:int, max:int):int
{
return (Math.floor(Math.random() * (1 + max - min)) +min);
}// end function
}// end class
}// end package
Простоположим, вы используете Math.round()
для получения случайного индекса для вашего массива экранных объектов, в этом примере, который происходит здесь:
(_sprites[random(0, 2)] as Sprite).alpha = 1;
private function random(min:int, max:int):int
{
return (Math.floor(Math.random() * (1 + max - min)) +min);
}// end function
Вы также можете заменить значение для аргумента random()
метода *1012* методас _sprites.length - 1
, который также вернет 2.