Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Скрол бар улетает вместе с риcунком (http://www.flasher.ru/forum/showthread.php?t=142431)

NumpuT 21.07.2010 01:44

Скрол бар улетает вместе с риcунком
 
Код AS3:

package pkt
{
        import mx.controls.VScrollBar;       
        import mx.core.UIComponent;       
        import mx.events.ScrollEvent;
 
 
 
        public class CScrollBar extends VScrollBar        {
 
 
                public const heightScroll:int = 787;
                public const arrowSize:int = 7;
 
                public function CScrollBar( hght:int = heightScroll, wdht:int = 0 ) : void {                       
                        super( );
                        x = wdht;
                        direction = "vertical";                       
                        height = heightScroll + arrowSize * 2;
                        if( hght < height ){
                                visible = true;
                        } else { visible = false; }
                        pageSize = hght;
                        minScrollPosition = 0;
                        maxScrollPosition = height - hght;                       
                        pageScrollSize = 0;
                        lineScrollSize = 1;       
                        addEventListener( mx.events.ScrollEvent.SCROLL, ScrollIt );
                }
 
 
                private function  MoveObject( ) : void  {                       
                        if( document != null ) {               
                                height = heightScroll + arrowSize * 2;
                                pageScrollSize = 0;
                                pageSize = document.height;                                                               
                                maxScrollPosition = height - document.height;
                                document.verticalScrollPosition = scrollPosition;       
                                document.verticalPageScrollSize = pageScrollSize;
                                document.verticalLineScrollSize = lineScrollSize;
                                document.tmpTxt.text = " scrollPosition - " + scrollPosition + "\n pageSize - " + pageSize + "\n lineScrollSize - " + lineScrollSize + "\n maxScrollPosition - " + maxScrollPosition + "\n minScrollPosition - " + minScrollPosition + " \n height - " + height + "\n pageScrollSize - " + pageScrollSize;
                                //maxVerticalScrollPosition = 1180 [0x49c]
 
                                //trace( " document not null ");
                        } //else trace( " document is null ");                       
                }               
 
                public function SetScroll( _component:UIComponent = null ) : void{
 
                        height = heightScroll + arrowSize * 2;
                        if( _component != null ) {                               
                                if( _component.height < height ){
                                        visible = true;                                       
                                        pageSize = _component.height;
                                        pageScrollSize = 0;
                                        maxScrollPosition = height - _component.height;
                                        if( document != null ) document.tmpTxt.text = " scrollPosition - " + scrollPosition + "\n pageSize - " + pageSize + "\n lineScrollSize - " + lineScrollSize + "\n maxScrollPosition - " + maxScrollPosition + "\n minScrollPosition - " + minScrollPosition + " \n height - " + height + "\n pageScrollSize - " + pageScrollSize;
                                } else visible = false;
                        }
                }
 
                private function ScrollIt( evnt:Event ) : void {                       
                        MoveObject( );
 
                }
 
        }
}

Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="OnCreationComplite( );" verticalScrollPolicy="off" >
        <mx:Script>
                <![CDATA[
 
                        import pkt.CScrollBar;
 
 
 
                        public var VSB:CScrollBar;
 
                        public function OnCreationComplite( ) : void {
 
                                VSB = new CScrollBar( this.height, this.width );                               
                                addChild( VSB );
 
                                this.verticalScrollPolicy = "on";
                                this.verticalScrollBar = VSB;
 
                                addEventListener( mx.events.ResizeEvent.RESIZE, ResizeAplication );
 
 
                        }
 
 
                        private function ResizeAplication( evnt:Event ) : void {                       
                                VSB.SetScroll( this );                               
                        }
 
                ]]>
        </mx:Script>
        <mx:Image x="0" y="0" source="@Embed(source='img.jpg')" />       
        <mx:Text x="433" y="308" text="Text" width="285" height="184" id="tmpTxt"/>
</mx:Application>

Стрелки скролла улетают в вверх вместе с рисунком, я не пойму почему?

Добавлено через 12 часов 57 минут
Походу надо набраться терпения:)

Добавлено через 13 часов 19 минут
Походу так лучше не делать
Код AS3:

this.verticalScrollPolicy = "on";
this.verticalScrollBar = VSB;

Лучше сделать независимый скролл и в зависимости от ресайз и от положения скролл определять х или у объекДа?

Bond007 26.07.2010 17:01

а зачем собственно скрол для самого рисунка, он там изначально есть.

NumpuT 26.07.2010 22:27

Так отключи его второстепенно и он исчезнет:)


Часовой пояс GMT +4, время: 05:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.