Просмотр полной версии : фон текстового поля
Добрый вечер!
Недавно на форуме подсказали, как сделать "бегущую строку".
Чтобы организовать появление текста в начале поля, в текстовом файле вписывается нужное кол-во любых символов (например, "_") с цветом фона текстового поля.
Все работает отлично (nOobCrafter еще раз спасибо!).
Одна загвоздка, мне нужно поместить "бегущую строку" на рисунок. Сразу становятся видны вспомогательные символы...
Заранее всем огромное спасибо!
В первом кадре гл. временной шкалы код:
//
System.useCodepage = true;
var texturl = "text.txt";
this.createEmptyMovieClip("text_mc", 1);
text_mc.createTextField("pole_txt", 0, 10, 10, 80, 25);
text_mc.pole_txt.variable = "TextField";
text_mc.pole_txt.html = true;
text_mc.pole_txt.selectable = false;
text_mc.pole_txt.border = true;
text_mc.pole_txt.textColor = 0x000000;
loadVariables(texturl, "text_mc");
function rText():Void {
if (text_mc.pole_txt.hscroll<text_mc.pole_txt.maxhscroll) {
text_mc.pole_txt.hscroll += 5;
} else {
text_mc.pole_txt.hscroll = 0;
}
}
setInterval(rText, 80); //*-
//
C Flash'ем закончили.
Создаем файл text.txt и сохраняем там же, где сохранили наш *.fla
В текстовом файле следующий код/текст:
TextField=<FONT COLOR="#FFFFFF">_________________</FONT>Demiart - Photoshop Форум - лучший форум о
Photoshop в RUнете!!!<FONT COLOR="#FFFFFF">_________________</FONT>
Об этом речь идёт что ли..
text_mc.pole_txt.border = true;
если да, то замените на..
text_mc.pole_txt.border = false;
да нет, не об этом...
border - это границы текстового поля. Я же говорю об наполнении текстового поля, background.
Вам фон на текстФилде нужно убрать?
Если да, то я написал верно.
Добавлено через 1 час 18 минут
а..верно, border границы поля..че эт я..не проснулся ещё наверное:boredom::mosking:
Вопрос правдо совсем не понял, чё там с background вам надо сделать..
И реализация честно говоря не ахти, я от nOobCrafter большего ожидал :):)
Смотри. Я вложил пример. Если просматриваешь в Adobe Flash, то видны подчерки, которык грузятся из файла. А если смотришь в плеере, то виден белый фон... А мне надо, чтобы не было ни фона, ни подчерков...
Может можешь предложить какой-то алтернативный подход к "бегущей строке"?
Можно попробовать так. Вариант тоже плохой, так как я использовал анимацию..
Если тебе не подойдет этот вариант, я найду время и переделаю нормально..пока что времени нет:))
Спасибо. Такой вариант не совсем подходит. Мне нужна возможность регулирования скорости. В "бегущую строку" грузятся разные тексты, а на твоем примере что-то не работает.
В любом случае спасибо!!!
Будет время, пиши! Буду ждать.
Всё оказалось крайне просто..и не заняло особо времени..поэтому вот..
//Загрузили в messageURL какой-то txt
messageURL = "text.txt";
//Длина маски
yscale = 190;
//Скорость "бегущей строчки"
speedLine = 5;
var container:MovieClip = this.createEmptyMovieClip("text_mc", 1);
var container2:MovieClip = container.createEmptyMovieClip("maska_mc", 2);
container2.beginFill(0xFF0000);
container2.moveTo(10,10);
container2.lineTo(yscale,10);
container2.lineTo(yscale,35);
container2.lineTo(10,35);
container2.lineTo(10,10);
container2.endFill();
text_mc.setMask(container2);
var pole_txt:TextField = container.createTextField("pole_txt", 0, 180, 10, 180, 25);
pole_txt.autoSize = true;
pole_txt.html = true;
pole_txt.selectable = false;
pole_txt.border = true;
pole_txt.textColor = 0x000000;
var myVars:LoadVars = new LoadVars();
myVars.onLoad = function() {
pole_txt.text = myVars["TextField"];
var_num = "-"+pole_txt._width;
go();
};
myVars.load(messageURL);
function go():Void {
container.onEnterFrame = function() {
if (pole_txt._x>var_num) {
pole_txt._x -= speedLine;
} else {
pole_txt._x = 180;
}
};
}
//Ура!
Спешл фор ю:)
P.S. Предыдущий мой вариант сожги в корзине..и не вспоминай про него:cool::mosking:
Круто!
Работает как надо!
Огромное спасибо!
P.S. в pole_txt (для удобства) подправь привязку к yscale
Забыл про координаты
Вот так будет ещё чуть лучше:)
//Загрузили в messageURL какой-то txt
messageURL = "text.txt";
//Длина маски
yscale = 180;
//Скорость "бегущей строчки"
speedLine = 5;
//Позиция бегущей строки по _x
xpos=0
//Позиция бегущей строки по _y
ypos=0
var container:MovieClip = this.createEmptyMovieClip("text_mc", 1);
var container2:MovieClip = container.createEmptyMovieClip("maska_mc", 2);
container2.beginFill(0xFF0000);
container2.moveTo(10,10);
container2.lineTo(yscale,10);
container2.lineTo(yscale,30);
container2.lineTo(10,30);
container2.lineTo(10,10);
container2.endFill();
container2._x=xpos
container2._y=ypos
text_mc.setMask(container2);
var pole_txt:TextField = container.createTextField("pole_txt", xpos, yscale, ypos+10, 180, 25);
pole_txt.backgroundColor = 0xFF0000;
pole_txt.autoSize = true;
pole_txt.html = true;
pole_txt.selectable = false;
pole_txt.border = true;
pole_txt.textColor = 0x000000;
var myVars:LoadVars = new LoadVars();
myVars.onLoad = function() {
pole_txt.text = myVars["TextField"];
var_num = "-"+pole_txt._width;
go();
};
myVars.load(messageURL);
function go():Void {
container.onEnterFrame = function() {
if (pole_txt._x>var_num) {
pole_txt._x -= speedLine;
} else {
pole_txt._x = yscale;
}
};
}
P.S. в pole_txt (для удобства) подправь привязку к yscale
Не понял, что подправить?:)
я имел ввиду, если захочется изменить длину "бегущей строки" (т.е. ) длину маски
var pole_txt:TextField = container.createTextField("pole_txt", xpos, yscale-10, ypos+10, 180, 25);
....
} else {
pole_txt._x = yscale-10;
}
не знаю, может не прав...
Исправил, смотри последний вариант, я его заменил.
Добавлено через 3 часа 52 минуты
Тебе сегодня просто сказочно везёт. Мой IQ редко поднимается за -1, но сегодня у меня просто мозговой штурм, поэтому вот ещё один апдейт к бегущей строке.
Исправил косяки и доработал..
Чёб ето в полной мере использовать, тебе нужно создать кнопочку и в библиотеке, в Linkage обозвать её как str.
txt файл должен выглядеть так
message1=Это первое сообщение.&message2=Demiart - Photoshop Форум - лучший форум о Photoshop в RUнете!!!
//Бегущая строка на все случаи жизни!:)
//Автор: KiL33
//Загрузили в messageURL какой-то txt
messageURL = "text.txt";
//Какое сообщение показываем первым
message_num = 1;
//Размер бегуще строки в процентах
size_mc = 120;
//Длина бегущей строчки
xscale = 280;
//Скорость бегущей строчки
speedLine = 2;
//Позиция бегущей строки по _x
xpos = 110;
//Позиция бегущей строки по _y
ypos = 10;
//Границы текстового поля true-показать; false-убрать
txt_border = true;
//Цвет текста___после 0x[ваш Цвет]
txt_color = 0x00000;
//Cоздаём пустой МувиКлип
var fon:MovieClip = this.createEmptyMovieClip("fon_mc", 1);
fon._xscale = size_mc;
fon._yscale = size_mc;
//Создаем Мувики для аттача стрелок на сцену
var mc:MovieClip = fon.attachMovie("str", "str", 998, {_alpha:100, _x:xpos+xscale-15, _y:ypos+35});
var mc2:MovieClip = fon.attachMovie("str", "str2", 999, {_alpha:100, _x:xpos+xscale-25, _y:ypos+35});
mc2._xscale = -100;//Переворачиваем кнопку
//Кнопка Следующее сообщение
mc.btn.onPress = next_message;
function next_message():Void {
counter++;
success();
}
//Кнопка Предыдущее сообщение
mc2.btn.onPress = prev_message;
function prev_message():Void {
counter--;
success();
}
//Аттачим мувик выступающий в роли фона
var mc_fon:MovieClip = fon.attachMovie("fon", "fon", 1, {_alpha:100, _x:xpos, _y:ypos+10});
mc_fon._xscale = xscale;
var container:MovieClip = fon.createEmptyMovieClip("text_mc", 2);
//Создаём текстовое поле в которое будет грузиться из нашего txt информация
var pole_txt:TextField = container.createTextField("pole_txt", xpos, xscale+xpos, ypos+10, 180, 25);//180,25
//Настраеваем поля
pole_txt.autoSize = true;//автоматическое выравнивание текстого поля
pole_txt.html = true;//наше текстовое поле понимает html тэги
pole_txt.selectable = false;//выделение текста
pole_txt.border = txt_border;//границы поля
pole_txt.textColor = txt_color;//цвет текста
//Создаём мувик-маску для скрытия уходящих за пределы маски букв
var maska:MovieClip = fon.createEmptyMovieClip("maska_mc", 3);
//Рисуем в мувиКлипе прямоугольник
maska.beginFill(0xFF0000);
maska.moveTo(10,10);
maska.lineTo(xscale,10);
maska.lineTo(xscale,55);
maska.lineTo(10,55);
maska.lineTo(10,10);
maska.endFill();
maska._x = xpos;
maska._y = ypos;
//Сделали мувик маской и применили к text_mc
fon_mc.setMask(maska);
//Загружаем текст из text.txt
var myVars:LoadVars = new LoadVars();
//Если загрузка закончена
myVars.onLoad = success;
function success():Void {
if (typeof (myVars["message"+counter]) != "string") {
counter = message_num;
}
pole_txt.text = myVars["message"+counter];
//Получили длину текстового поля
var_num = "-"+pole_txt._width;
go();
}
myVars.load(messageURL);
//Функция запускающая onEnterFrame и соответственно движение нашей бегущей строчки.
function go():Void {
container.onEnterFrame = function() {
if (pole_txt._x>var_num) {
pole_txt._x -= speedLine;
} else {
pole_txt._x = xscale+xpos;
counter++;
success();
}
};
}
А какие косяки были в предыдущей версии, а то я уже ее под свои нужны наладил..?
Еще один вопрос, правда, не в тему.
Есть 2 картинки (jpg), например, небо и воздушный шарик.
Нужно, чтобы шарик то был на небе, то не было.
Т.к. шарик не прямоугольник, то с картинкой будет идти фон прямоугольника, в который вписан шарик. Как-нибудь можно сгруппировать небо и шарик?
А какие косяки были
После "Прекрасной ночи.." я уже не помню, где я там накосячил, но вложенный сейчас вариант исправляет ещё пару косяков:))))
Добавил:
- Цвет подложки(фон текста)
- Прозрачность подложки(фон текста)
- Управление навигацией <> true-показать кнопочки; false-убрать
- Исправил косяки
Мне не всегда получается понять твои вопросы с первого раза..вот и сейчас тоже самое:))))
шарик не прямоугольник
Это нонсенс, НЕВЕРЮ!))
Извиняюсь за свой корявый язык... Так уж выходит.
Я посылаю пример. Там просто две картинки, и вопрос понятен невооруженный взглядом (как убрать фон у "доски с гвоздями":).
Есть три выхода..
1. Либо ctrl+b и обрисовка картинки по контуру
2. Если устроит, можно картинку преобразовать в мувиКлип и в свойствах(properties) Мувика установить Blend>Multiply
3. Использовать blendMode, смотри в хелпе всё есть
Спасибо!
Еще раз убедился, что о флеше ничего не знаю...
Есть еще вопрос. Но, видимо, для этого начну новую тему.
До встречи :)
Еще раз спасибо за все!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.