>>Почему не подойдет цикл?
осмелюсь предположить, что только потому, что мы не ищем легких путей

спецом для этого случая вариант со статическим списком - внешне выглядит как заказывали: чик и все,
но должен огорчить товарища - реализация все равно через цикл, как и любая другая для подобной задачки

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends Sprite
{
public function Main():void
{
//10 экземпляров
for (var i:int = 0; i < 10; i++)
{
addChild(new Ystr());
}
stage.addEventListener(MouseEvent.CLICK, onClick);
}
//переключаем видимость по клику
private function onClick(event:MouseEvent):void
{
Ystr.visible = !Ystr.visible;
}
}
}
//==========================================================
import flash.display.Sprite;
class Ystr extends Sprite
{
private static var list:Array/*Ystr*/ = [];
private static var _visible:Boolean = true;
public function Ystr():void
{
graphics.beginFill(0xC0C0C0);
graphics.drawCircle(0, 0, 10);
x = Math.random() * 400;
y = Math.random() * 400;
list.push(this);
}
public static function get visible():Boolean {return _visible;}
public static function set visible(value:Boolean):void
{
if (value != _visible)
{
_visible = value;
for each(var item:Ystr in list)
{
item.visible = _visible;
}
}
}
}