views:

343

answers:

2

I am trying to put a vertical scrollbar onto a dynamic TextField in Flash CS4. When I do this in Scene 1, everything works just fine. However, if I move the TextField+Scrollbar to Scene 2, it breaks. The errors I get when I run the code indicate that Flash is loading the scrollbar right away and then trying to find the associated TextField. The problem is that, since the TextField doesn't load until you get to Scene 2, Flash throws an error.

I tried a lot of things to solve this issue. What it mostly came down to was that I needed to create the TextField and Scrollbar in actionscript (instead of from the component library) so that I could control when each was created. To create the TextField, I typed:

//create a textfield for the story
import flash.text.TextField;

var story_txt:TextField = new TextField();
//story_txt.multiline = true;
story_txt.x = 154;
story_txt.y = 233.5;
story_txt.width = 348;
story_txt.height = 104.5;
story_txt.border = true;
story_txt.type = "dynamic";
story_txt.backgroundColor = 0xffffff;
story_txt.background = true;
story_txt.wordWrap = true;
story_txt.multiline = true;

and to create the scrollbar, I then typed:

import fl.controls.UIScrollBar; 
//add the story_txt to the stage
addChild(story_txt);

var mySb:UIScrollBar = new UIScrollBar(); 
mySb.direction = "vertical"; 
// Size it to match the text field. 
mySb.setSize(story_txt.width, story_txt.height);  

// Move it immediately to the right of the text field. 
mySb.move(story_txt.x, story_txt.height + story_txt.y); 

// put them on the Stage 
mySb.scrollTarget = story_txt;
//mySb.scrollTargetName = "story_txt";
stage.addChild(mySb);

The only problem is that this code only works if I make the ScrollBar horizontal and turn off wordwrap. For some reason, the vertical scrollbar will not work with wordrap on (and w/o wordwrap, Flash thinks that there's no need for a vertical scrollbar, as it sees only a single line of text.

Getting a textfield w/a scrollbar should be a simple process, but this is really out of hand. Any ideas on how to get the ScrollBar to work when wordWrap is turned on?

A: 

Basically you should never use Scenes in Flash. There are a lot of known issues with them.

This thread might help.

TandemAdam
A: 

Scene usage is generally bad practice. They are a legacy feature left in to keep current versions of flash compatible with earlier versions. If you must use the IDE to place things on stage you should use distinct frames on the main timeline in place of scenes, and place things that need the timeline to animate inside their own movieclips. The flash IDE actually reduces all the scenes down to one timeline at compile time any way but with many anomalies that wouldn't be present in manual timeline manipulation.

disadvantages of scenes from adobe: http://help.adobe.com/en%5FUS/Flash/10.0%5FUsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7eb3a.html

greg