Расплывчатое название темы, но вот суть:
при вызове функции в спрайте отрисовываются прямоугольники.

Код AS3:
package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.MouseEvent;
public class drRecMenu_lines extends Sprite {
private var container:Sprite;
private var itemXpos:uint;
private var contPositionY:uint;
/* private var it1:*;
private var it2:*;
private var it3:*;
private var it4:*;
private var it5:*;*/
public function drRecMenu_lines(contPositionY:uint=580) {
container=new Sprite();
this.contPositionY=contPositionY;
container.y=contPositionY;
drawItem(1,0xFFFF00,1);
drawItem(2);
drawItem(3);
drawItem(4);
drawItem(5);
this.addChild(container);
container.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
//it3.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
//it4.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
}
private function drawItem(itemCount:uint,fillColor:uint=0x000000, itemAlpha:Number=.8):void {
if (itemCount<5) {
itemXpos=(itemCount-1)*180;
container.graphics.beginFill(fillColor, itemAlpha);
container.graphics.drawRect(itemXpos,0,180,60);
container.graphics.endFill();
container.graphics.moveTo(itemXpos,contPositionY);
container.graphics.lineStyle(1,0xCCCCCC, .2);
container.graphics.lineTo(itemXpos,contPositionY+60);
} else {
itemXpos=(itemCount-1)*180;
container.graphics.beginFill(fillColor, itemAlpha);
container.graphics.drawRect(itemXpos,0,1000,60);
container.graphics.endFill();
}
}
private function runDebug(evt:MouseEvent):void {
trace("Mouse is over the "+evt.target.name+" item");//Mouse is over the instance1 item
}
}
}
Как сделать так, чтобы каждый прямоугольник был как кнопка и реагировал на наведение? У меня не хватате опыта, но мне кажется как раз что это потому что прямоугольники отрисованы в одном спрайте?
Пробовал так:

Код AS3:
package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.MouseEvent;
public class drRecMenu_lines extends Sprite {
private var container:Sprite;
private var itemXpos:uint;
private var contPositionY:uint;
private var it1:*;
private var it2:*;
private var it3:*;
private var it4:*;
private var it5:*;
public function drRecMenu_lines(contPositionY:uint=580) {
container=new Sprite();
this.contPositionY=contPositionY;
container.y=contPositionY;
it1=drawItem(1,0xFFFF00,1);
it2=drawItem(2);
it3=drawItem(3);
it4=drawItem(4);
it5=drawItem(5);
this.addChild(container);
//container.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
it3.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
it4.addEventListener(MouseEvent.MOUSE_OVER, runDebug);
}
private function drawItem(itemCount:uint,fillColor:uint=0x000000, itemAlpha:Number=.8):void {
if (itemCount<5) {
itemXpos=(itemCount-1)*180;
container.graphics.beginFill(fillColor, itemAlpha);
container.graphics.drawRect(itemXpos,0,180,60);
container.graphics.endFill();
container.graphics.moveTo(itemXpos,contPositionY);
container.graphics.lineStyle(1,0xCCCCCC, .2);
container.graphics.lineTo(itemXpos,contPositionY+60);
} else {
itemXpos=(itemCount-1)*180;
container.graphics.beginFill(fillColor, itemAlpha);
container.graphics.drawRect(itemXpos,0,1000,60);
container.graphics.endFill();
}
}
private function runDebug(evt:MouseEvent):void {
trace("Mouse is over the "+evt.target.name+" item");//Mouse is over the instance1 item
}
}
}
Выдает ошибку
Цитата:
TypeError: Error #1010: Термин не определен и не имеет свойств.
at drRecMenu_lines()
|