![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 106
|
Как организовать в LinkButton-е multiline?
|
|
|||||
|
4AM Games
|
Расширить класс LinkButton, чтобы он использовал mx.controls.Text вместо mx.controls.Label.
наверное, не проверял.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 106
|
Ого, ето для меня высший пилотаж. По проще никак???
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вероятно, нет.
|
|
|||||
|
4AM Games
|
В флексе 80% работы заключается в расширениии классов из Flex Framework, если это высший пилотаж, может стоит научится? а то я не представляю что можно делать в флексе иначе.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 106
|
Ну, тогда направьте меня на путь истинный. С чего начать это осваивать. Может, какую нить литературу подскажите.
Заранее благодарю. |
|
|||||
|
4AM Games
|
package eu.orangeflash.controls
{
import mx.controls.LinkButton;
import mx.controls.Button;
import mx.core.UIComponent
import flash.text.TextField
import mx.core.mx_internal;;
public class MultilineLink extends LinkButton
{
public function MultilineLink()
{
}
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var h:Number = calculateMultilineHeight(label);
textField.height = h;
textField.y = (height-h)/2;
}
protected override function measure():void
{
super.measure();
var textHeight:Number = 8;
if(label)
{
textHeight += calculateMultilineHeight(label);
}
mx_internal::viewIcon();
mx_internal::viewSkin();
var iconHeight:Number = mx_internal::currentIcon ? mx_internal::currentIcon.height : 0;
var h:Number = 0;
if (labelPlacement == "left" ||
labelPlacement == "right")
{
h = Math.max(textHeight, iconHeight);
}
else
{
if (label && label.length > 0)
h = textHeight + iconHeight;
else
h = iconHeight;
if (iconHeight != 0)
h += getStyle("verticalGap");
}
trace(textField.x);
this.measuredMinHeight = this.measuredHeight = h;
textField.y = (h - textHeight)/2;
}
protected function calculateMultilineHeight(multilineText:String):Number
{
var tf:TextField = new TextField();
tf.autoSize = "left";
tf.text = multilineText;
return tf.height;
}
}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 106
|
Просмотрев выше написанный код, я понял, что мне еще предстоит долго поработать с Flex-ом, чтоб писать такие вещи.
Вопрос. Почему-то данный код у меня работает как обыкновенный LinkButtob и нету multiline – а. |
|
|||||
|
4AM Games
|
Не знаю у меня все пашет
версия Flex 2.0.1 а да текст в MXML Надо задать через байндинги - label="{'first line\rsecondline'}"
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|