2009-11-11 6 views
0

J'essaye de placer une barre de défilement verticale sur un TextField dynamique dans Flash CS4. Quand je fais cela dans la scène 1, tout fonctionne très bien. Cependant, si je déplace la barre de défilement TextField + vers la scène 2, elle se brise. Les erreurs que j'obtiens lorsque j'exécute le code indiquent que Flash charge la barre de défilement tout de suite et essaie ensuite de trouver le TextField associé. Le problème est que, puisque le TextField ne charge pas jusqu'à ce que vous arriviez à la scène 2, Flash renvoie une erreur.barre de défilement dans Flash CS4

J'ai essayé beaucoup de choses pour résoudre ce problème. Ce dont il s'agissait principalement, c'était que je devais créer le TextField et Scrollbar dans actionscript (au lieu de de la bibliothèque de composants) afin que je puisse contrôler quand chacun a été créé. Pour créer le champ de texte, je tapais:

//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; 

et de créer la barre de défilement, je tapais alors:

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); 

Le seul problème est que ce code ne fonctionne que si je fais la barre de défilement horizontale et éteins Wordwrap. Pour une raison quelconque, la barre de défilement verticale ne fonctionnera pas avec WordPrap (et sans Wordwrap, Flash pense qu'il n'y a pas besoin d'une barre de défilement verticale, car elle ne voit qu'une seule ligne de texte.)

une barre de défilement devrait être un processus simple, mais c'est vraiment hors de portée.Toutes les idées sur comment faire fonctionner le ScrollBar lorsque wordWrap est activé?

Répondre

0

Fondamentalement, vous ne devriez jamais utiliser Scènes en Flash. les problèmes connus avec eux.

This thread pourrait aider.

0

utilisation de la scène est généralement une mauvaise pratique. Ils sont une fonctionnalité héritée laissée pour garder les versions actuelles de Flash compatible avec les versions antérieures. Si vous devez utiliser l'EDI pour placer des choses sur scène, vous devez utiliser des images distinctes sur la timeline principale à la place des scènes, et placer les choses qui ont besoin de la timeline pour les animer dans leurs propres clips. L'IDE flash réduit en fait toutes les scènes jusqu'à la ligne de temps au moment de la compilation, mais avec de nombreuses anomalies qui ne seraient pas présentes dans la manipulation manuelle de la timeline. Désavantages des scènes d'adobe: http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7eb3a.html