0
동적 스크립트 안에 텍스트를 기반으로 텍스트 영역의 크기를 조정하고 싶습니다. 그러나 동적으로 내부에 넣을 수는 있지만 절대적으로 그렇게하는 법은 모릅니다 ... 아무것도 검색하지 않았습니다. . 문제를 해결하는 데 도움이 될 수 있다면 여기에 내 코드가 있습니다. msgLabel의 높이를 내용에 맞게 조정하고 싶습니다.spark 텍스트 영역 높이 내용으로 조정
많이 고마워.).
public function createTweet(tweet:XML, lineName:String, isTweetInList:Boolean):IVisualElement{
var authorS:String = tweet.posterName;
var tweetID:String = tweet.tweetID;
//Main vertical group
var vg:VGroup = new VGroup();
vg.percentWidth = 100;
if(!isTweetInList){
//Add the new VGroup to the tweetTabHolder
tweetTabHolder[tweetID+lineName] = vg;
//Add the new tweetID to the tweet posted by an author
if(tweetByLineByAuthor[authorS] == null)
tweetByLineByAuthor[authorS] = new Dictionary();
if(tweetByLineByAuthor[authorS][lineName] == null)
tweetByLineByAuthor[authorS][lineName] = new ArrayList();
tweetByLineByAuthor[authorS][lineName].addItem(tweetID);
}
vg.setStyle("backgroundAlpha", 0);
vg.paddingLeft = 20;
var sp0:Spacer = new Spacer();
sp0.height = 10;
vg.addElement(sp0);
//Tweet Content
//Author
var hgA:HGroup = new HGroup();
var aSpacer:Spacer = new Spacer();
aSpacer.width = 10;
hgA.addElement(aSpacer);
var authorLabel:RichText = new RichText();
authorLabel.text = authorS;
authorLabel.setStyle("fontSize",20);
authorLabel.setStyle("fontWeight",FontWeight.BOLD);
authorLabel.setStyle("color",authorColor);
authorLabel.addEventListener("click",authorClickHandler);
authorLabel.addEventListener(MouseEvent.MOUSE_OVER,authorFocusInHandler);
authorLabel.addEventListener(MouseEvent.MOUSE_OUT,authorFocusOutHandler);
hgA.addElement(authorLabel);
if(tweet.posterName == userNameLogged || isTweetInList){
var abs1:Spacer = new Spacer();
abs1.width = 25;
hgA.addElement(abs1);
hgA.addElement(createDeleteTweetButton(tweetID,vg, isTweetInList));
var abs2:Spacer = new Spacer();
}
if(!isTweetInList){
abs2.width = 4;
hgA.addElement(abs2);
hgA.addElement(createFavorisButton(tweetID));
}
vg.addElement(hgA);
//Msg
var hgM:HGroup = new HGroup();
var mSpacer:Spacer = new Spacer();
mSpacer.width = 15;
hgM.addElement(mSpacer);
var msgLabel:TextArea = new TextArea();
hgM.addElement(msgLabel);
hgM.percentWidth = 100;
msgLabel.percentWidth = 100;
msgLabel.text = tweet.msg;
msgLabel.setStyle("fontSize",12);
msgLabel.setStyle("color",msgColor);
msgLabel.editable = false;
msgLabel.setStyle("lineBreak", "toFit");
vg.addElement(hgM);
//Date
var hgD:HGroup = new HGroup();
var dSpacer:Spacer = new Spacer();
dSpacer.width = 10;
hgD.addElement(dSpacer);
var dateLabel:Label = new Label();
dateLabel.text = tweet.postingDate.date;
dateLabel.setStyle("fontSize",10);
dateLabel.setStyle("color",dateColor);
hgD.addElement(dateLabel);
vg.addElement(hgD);
var sp1:Spacer = new Spacer();
sp1.height = 10;
vg.addElement(sp1);
var hr:HRule = new HRule();
hr.percentWidth = 90;
hr.x = 20;
vg.addElement(hr);
return vg;
}
문제는 내가 동적으로 ... 나는 즉석에서 이러한 시각적 객체를 생성해야 MXML을 만드는 방법을 알고하지 않는 것이, 즉이다 그것은 동적으로. 그리고 내가 말한대로 코드에서 크기를 고정 시켰습니다. msgLabel.percentWidth = 100을 사용하고 VBox에 대해 동일한 작업을 수행 했으므로 정상적으로 수행해야했습니다. :) 하지만 당신의 대답은, 당신이 나를 어떻게 dxmx mxml를 추가하는 방법을 설명 알 수 있다면 그것은 완벽 할 것입니다 – Abbadon
이것은 내 문제를 해결, 내가 새로운 구성 요소를 정의하고 내 actionscript 코드에서 사용. 이 언어로 새로운 재미있는 개념을 많이 배웠습니다. – Abbadon
동적으로 항목을 만들려면 사용자 정의 항목 렌더러에 따라 항목을 만들 때'List' 또는'DataGroup'과 같은 것을 사용하여 데이터 기반 응용 프로그램을 조회해야합니다. 그것을보세요 :) –