ActionBar в чистом ActionScript
У меня есть этот MXML, который я хотел бы выразить как actioncript:
<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 на панель действий (несколько меток)? Также возможно ли заставить другие представления наследовать эту панель действий, чтобы мне не приходилось дублировать код (у всех соперников были бы общие элементы)?
1 ответ
Этот синтаксис:
<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(), я не уверен, что вы, если это действительно то, что вы хотели.