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

т.е. скролл есть, трассировка показывает, что клик идет, а события клика не выполняются.

Код AS3:
private var TxtField:TextField = new TextField();
private var TitleField:TextField = new TextField();
private var FTitle:TextFormat = new TextFormat();
private var FText:TextFormat = new TextFormat();
private var data:XML;
private var myFont1:Font = new presentum();
private var PageField:MovieClip;
private var myScroll:scroller;
private var scrollX:uint;
private var scrollY:uint;
private var P:Number;
private var scrollHeight:uint;
private var rect1:Rectangle;
private var scrollUp:ornament2;
private var scrollDown:ornament2;
public function addPage(myXML:XML, num:uint=0, moveX:uint=0, moveY:uint=0, width:uint=50, height:uint=50,
color:Number=0x000000, titleShow:Boolean=false, titleSize:uint=18, size:uint=10,
myNod:String="Page", gName:String="block"):MovieClip {
PageField = new MovieClip();
TitleField = new TextField();
TxtField = new TextField();
myScroll = new scroller();
myScroll.scaleX = myScroll.scaleY = 0.5;
data = myXML;
//-----------------------------
//Тут загружается текст в поле
//-----------------------------
FTitle.size = titleSize;
FTitle.font = myFont1.fontName;
FTitle.color = color;
FTitle.align = TextAlign.LEFT;
/////////////////////
FText.size = size;
FText.font = "Tahoma";
FText.color = color;
FText.align = TextAlign.LEFT;
TitleField.x = moveX;
TitleField.y = moveY;
TitleField.width = width;
TitleField.height = titleSize*1.5;
TitleField.type = TextFieldType.DYNAMIC;
TitleField.defaultTextFormat = FTitle;
TitleField.embedFonts = true;
/////////////////////////////
TxtField.x = moveX;
if (titleShow == false) {TxtField.y = moveY} else {TxtField.y = moveY+TitleField.height+20}
TxtField.width = width;
TxtField.height = height;
TxtField.defaultTextFormat = FText;
TxtField.wordWrap = true;
//-----------------------------
TitleField.htmlText = data.child(myNod).child(gName).@title[num];
TxtField.htmlText = data.child(myNod).child(gName)[num];
//-----------------------------
//тут создается скролл
//-----------------------------
if (titleShow == true) {PageField.addChild(TitleField);}
PageField.addChild(TxtField);
if (TxtField.height < TxtField.textHeight) {
scrollX = moveX+TxtField.width+20;
//trace(TxtField.height+" - "+TxtField.textHeight);
PageField.graphics.lineStyle(1,0xcccc00);
PageField.graphics.moveTo(scrollX,TxtField.y+7);
PageField.graphics.lineTo(scrollX,TxtField.y+TxtField.height-7);
//-----------------------------
//а вот тут начинается проблема
//-----------------------------
scrollUp = new ornament2();
PageField.addChild(scrollUp);
scrollUp.x = scrollX;
scrollUp.rotation = -90;
scrollUp.y = TxtField.y-scrollUp.width/2;
scrollUp.addEventListener(MouseEvent.CLICK, onUp);
scrollUp.addEventListener(MouseEvent.MOUSE_OVER, onOver);
scrollUp.addEventListener(MouseEvent.MOUSE_OUT, onOut);
scrollDown = new ornament2();
PageField.addChild(scrollDown);
scrollDown.x = scrollX+1;
scrollDown.rotation = 90;
scrollDown.y = TxtField.y+TxtField.height+scrollDown.width/2;
scrollDown.addEventListener(MouseEvent.CLICK, onDown);
scrollDown.addEventListener(MouseEvent.MOUSE_OVER, onOver);
scrollDown.addEventListener(MouseEvent.MOUSE_OUT, onOut);
PageField.addChild(myScroll);
myScroll.x = scrollX;
scrollHeight = TxtField.height-myScroll.height;
scrollY = TxtField.y+myScroll.height/2;
myScroll.y = scrollY;
TxtField.addEventListener(Event.SCROLL, onScroll);
}
rect1 = new Rectangle(myScroll.x, myScroll.y, 0, scrollHeight);
return PageField;
}
private function onOver(e:Event){
Mouse.cursor = "button";
}
private function onOut(e:Event){
Mouse.cursor = "arrow";
}
private function onUp(e:Event){
if (TxtField.scrollV > 0) {TxtField.scrollV--};
myScroll.y = Math.round(scrollY+(scrollHeight/TxtField.maxScrollV*TxtField.scrollV));
}
private function onDown(e:Event){
if (TxtField.scrollV < TxtField.maxScrollV) {TxtField.scrollV++};
myScroll.y = Math.round(scrollY+(scrollHeight/TxtField.maxScrollV*TxtField.scrollV));
}
private function onScroll(e:Event){
myScroll.y = Math.round(scrollY+(scrollHeight/TxtField.maxScrollV*TxtField.scrollV));
}
а инициирую так

Код AS3:
Page1.addChild(TxtBlock1.addPage(myXML,0,420,20,550,400,0xffffff,true,24,12));
Page2.addChild(TxtBlock2.addPage(myXML,1,420,20,550,450,0xffffff,true,24,12));
Добавлено через 1 час 1 минуту
блин.... нашел! прастите меня алигафрена...
