2009-06-10 3 views

Antwort

2

Sie können den folgenden Ansatz versuchen:

<mx:TextArea id="area1" verticalScrollPolicy="off" verticalScrollPosition="{area2.verticalScrollPosition}" /> 
<mx:TextArea id="area2" /> 

Auf diese Weise area2 keine Scrollbar und area1 werden müssen. Und diese beiden Bereiche werden zusammen gescrollt, wenn der Benutzer scale2 scrollt.

+0

Danke Hrundik für schnelle Antwort. Das funktioniert für mich. Grüße, Shivang – shivang

1

@Hrundik das ist ein guter Ansatz, wenn der Inhalt und die Größe der Textbereiche gleich sind, aber wenn sie nicht sind, erhalten Sie Laufzeitfehler, wenn die verticalScrollPosition von Bereich2 größer als Bereich1 ist max. Also würde ich eine Funktion erstellen, um dies zu handhaben und prüfen, ob area1.maxScrollPosition> area2.verticalScrollPosition vor dem Festlegen der Scroll-Position Bereich1.

ein anderer Ansatz ....

ist dies ein nur einmal und getan oder planen Sie wieder zu verwenden ???

Sie können Umfang der Textbereich ein Ziel TextArea- als Paramater zu nehmen wie so:

private var _target:TextArea; 

public function set target(val:TextArea):void{ 
    _target = val; 
} 

dann überschreiben die srollHandler Funktion wie so ....

override protected function srollHandler(event:Event):void{ 

    super.scrollHandler(event); 

    if(event is ScrollEvent && _target != null) 
    _target.verticalScrollPosition = super.textField.scrollV - 1; 

} 

schließlich wie so verwenden. ...

<shua:TextAreaExtend text="{someText}" target="{myBuddy}"/> 
<mx:Text id="myBuddy" /> 

aber das könnte über töten sein ... ha

+0

Danke Shua. Das ist gut geeignet. Hilf den Leuten weiter. Grüße, Shivang – shivang

1

Wenn die beiden Scroll-Steuerelemente nicht die gleiche Höhe haben, können Sie immer noch eine Bindung mit der anderen erstellen, indem Sie verticalScrollPosition als Prozentsatz und nicht als Absolutwert abrufen.

Prost

Verwandte Themen