![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2005
Сообщений: 11
|
написал отдельный класс, который генерирует текстовое поле со скроллом.
скрол элементы подгружаются из SWC. входящие данные, XML и координаты. так вот когда добавляешь первый такой текстовый блок, там скрол работает, а на последующих не хочет ![]() т.е. скролл есть, трассировка показывает, что клик идет, а события клика не выполняются. 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)); } 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)); блин.... нашел! прастите меня алигафрена... ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|