Ok so i have this dyanamic textbox called logtxt and i have a UIScrollbar attached to it. It works, but only if i add it through typing/pasting it into the textbox. I need it to work when i add the text through the code. (it is linked correctly through the components inspector)
Asked
Active
Viewed 782 times
2 Answers
0
"I need it to work when i add the text through the code."
You can do this all through code no problem, for example put this on your main timeline;
import fl.controls.TextArea;
var myText:String = "Here is some text, notice how there will a automatigical scroll bar when needed :)";
var textarea_comp:TextArea = new TextArea();
textarea_comp.text = myText;
textarea_comp.height = 60;
addChild ( textarea_comp );
If you want to do this with your existing textfield, put this on this code in a place that is in context where it is located.
logtxt.text = "default custom text"

imp
- 1,110
- 8
- 13
-
thor625 you will need to provide much more information for anyone to help you. Show us the code that does not work and where you have it, tell us more details about your requirements and the steps you have taken so far, please elaborate. – imp Jan 19 '12 at 12:55
-
Ok well i figured out how to create my own scroll bar but thanks. i will post the awnser – thor625 Jan 19 '12 at 17:19
-
Oh you want to create your own scrollbar component and not use the flash ide supplied one. Your question did not really say this. Anyway if you are looking for some easy to use as3 only components check out https://github.com/impaler/As3-Bloom/blob/master/examples/Example.swf – imp Jan 20 '12 at 06:13
-
well i wanted to use the component but i decided to make my own when i found out how easy it was – thor625 Jan 20 '12 at 23:45
0
I made the movieclips drag_mc and track_mc and put them in a movie clip called scroll_mc. Then i have a class for making the scroll bar:
package {
import flash.display.Stage;
import flash.display.MovieClip;
import flash.events.*;
import flash.geom.Rectangle;
class MakeScrollBar {
private var host_mc:MovieClip;
private var call_back:Function;
private var drag_mc:MovieClip;
private var track_mc:MovieClip;
private var scroll_rect:Rectangle;
private var upper_limit:Number;
private var range:Number;
public function MakeScrollBar( _mc:MovieClip, cb:Function ) {
host_mc = _mc;
call_back = cb;
drag_mc = host_mc.drag_mc; //
drag_mc.buttonMode = true;
drag_mc.mouseChildren = false
drag_mc.addEventListener( MouseEvent.MOUSE_DOWN, press_drag );
track_mc = host_mc.track_mc;
track_mc.buttonMode = true;
track_mc.mouseChildren = false
track_mc.addEventListener( MouseEvent.CLICK, click_track );
set_limits();
}
private function press_drag( event:MouseEvent ):void {
drag_mc.stage.addEventListener( MouseEvent.MOUSE_UP, release_drag, false, 0, true );
drag_mc.startDrag( false, scroll_rect );
drag_mc.addEventListener( Event.ENTER_FRAME, drag );
}
private function release_drag( event:MouseEvent ):void {
drag_mc.removeEventListener( Event.ENTER_FRAME, drag );
drag_mc.stage.removeEventListener( MouseEvent.MOUSE_UP, release_drag );
drag_mc.stopDrag();
}
private function click_track( event:MouseEvent ):void {
trace( "Click track" );
}
private function set_limits():void {
scroll_rect = new Rectangle( track_mc.x, track_mc.y, 0, track_mc.height - drag_mc.height );
upper_limit = track_mc.y;
range = track_mc.height - drag_mc.height;
}
private function drag( event:Event ):void {
var p = ( drag_mc.y - track_mc.y ) / range;
call_back( p );
}
}
}
and a document class
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.MouseEvent;
public class ScrollBarAS3 extends Sprite {
public var my_scrollbar:MakeScrollBar;
public function ScrollBarAS3() {
my_scrollbar = new MakeScrollBar( scroll_mc, scroll_text );
}
public function scroll_text( n:Number ) {
scroll_txt.scrollV = Math.round( ( scroll_txt.maxScrollV - 1 ) * n ) + 1;
}
}
}
scroll_txt is the textbox
got it from http://www.webdevils.com/2007/10/13/as3-version-of-scrollbar-class/

thor625
- 87
- 4
- 16