2

我有这个 MXML,我想将它表示为 actionscript:

<s:titleContent>
    <s:Label text="Title" fontWeight="bold" fontSize="20" height="20" verticalAlign="top" />
    <s:Label text=".com" fontSize="12" height="17" verticalAlign="bottom" />
</s:titleContent>

我试过这个没有成功:

var chrome:ActionBar = new ActionBar();
chromeTitle.text = "Title";

chrome.setStyle("fontSize", 20);
chrome.title = "Title";
chrome.title = chromeTitle;

如何将 css 样式的文本添加到操作栏(多个标签)?是否可以让其他视图继承此操作栏,这样我就不必复制代码(所有视图都有共同的元素)?

4

1 回答 1

4

这个语法:

<s:titleContent>
 ...
</s:titleContent>

表示您正在为它所在的组件设置 titleContent 属性。您可以从案例中分辨出属性和新类实例之间的区别。类名总是以大写开头;而属性名称以小写字母开头。您没有指定这是哪个类的属性;但是由于您正在处理移动设备,因此我认为这是一个视图。titleContent 属性是一个数组。

所以; 你必须这样做:

// create the first label and set properties
var tempLabel :Label = new Label();
tempLabel.text = 'Title';
tempLabel.setStyle('fontWeight','bold');
tempLabel.setStyle('fontSize',20);
tempLabel.height = 20;
tempLabel.setStyle('verticalAlign','top');

// add label to titleContent array
this.titleContent.push(tempLabel);

// create next label
tempLabel :Label = new Label();
tempLabel.text = '.com';
tempLabel.setStyle('fontSize',12);
tempLabel.height = 17;
tempLabel.setStyle('verticalAlign','bottom');

// add second label to titleContent array
this.titleContent.push(tempLabel);

这是将您提供的 MXML 代码转换为 ActionScript 的正确方法。由于您自己的代码试图创建一个新的 ActionBar() 如果这真的是您想要的,我不确定您是什么。

于 2013-03-08T15:31:13.617 回答