Просмотр полной версии : доступ к TextField (Flash5)
есть потребность поочередно загружать в динамическое текстовое поле текстовые переменные из внешнего файла.
размер текста может изменяться. ну, то есть сегодня это 20 строк, а завтра 150.
и это все потом должно скроллиться в окне.
так вот можно ли как-нибудь программно изменять размеры текстового поля, чтоб потом в него мог влезть самый большой фрагмент текста.
и посоветуйте, пжлст, как можно иначе решить эту задачу.
произвольный фрагмент текста должен загружаться в swf и там в окне прокручиваться.
спасибо.
Max N Chubin_
24.01.2003, 23:20
можно сделать большое текстовое поле, положить в клип и маскировать его т.е. скроллить сдвигая клип с текстом внутри...
а лучше переходи на MX!
sergwizard
25.01.2003, 02:43
Зачем усложнять, маскировать клип? И на MX для этого не надо переходить. Все спокойно делается и в пятерке. Примерно так.
спасибо, сергвизард. в самом деле, все просто.
попутно еще один вопрос назрел :
по ходу возни с масками и скроллами выяснилсь, что поле с динамич. текстом не маскируется как дОлжно. т.е. дырки не получается и ничего не видно.
(текстовое поле втиснуто в мувик, а сверху лежит маска).
что я проглядел ?
sergwizard
25.01.2003, 06:27
Из исходника поймешь, в чем дело. Текстовый файл - тот же, поэтому не вкладываю.
Удачи.
Max N Chubin_
25.01.2003, 13:57
2 sergwizard:
ну наверное ты прав, чего то я неотдуплился по вопросу... :(
а переходить на MX надо однозначно! ;)
вот глянь на исходник...
тут с помощью MX сделано окошко со скроллингом.
причем окошко генерится с помощью ф-ции, а скролл бар автоматически масштабируется по размеру текстового поля.
Там конечно структура не особо оптимальна, но я это делал на базе кода другого человека (попросили поправить), влом было все прорисовывать.
sergwizard
25.01.2003, 14:27
Макс, да кто же спорит, что МХ лучше (не порядок), чем 5-й.
Но, иногда, у людей просто нет возможности перейти на МХ.
А то, что ты немного "неотдуплился", так это объяснимо - во-первых, ты уже так плотно сел на МХ, что более ранние версии кажутся просто нерабочими. А, во-вторых, с твоими теперишними проблемами, голова другим занята.
Ничего, все будет ОК.
Max N Chubin_
25.01.2003, 14:47
тут вон даже в гороскопе пишут:
Ежедневный гороскоп. Скорпион.
25 января / 26 января / 27 января
Вы заслуживаете отдыха, причем длительного. Или, если уж совсем некогда, не очень длительного. Но немедленно.
;)
sergwizard
25.01.2003, 15:31
Ну, уж если и в гороскопе.... Тогда не отвертишься. ;)
А вот, подскажи-ка, как в твоем примере подгружать внешний текстовый файл? А то у меня самого просто нет времени сейчас.
Max N Chubin_
25.01.2003, 15:58
ну типа вот наверное...
ты об этом?
:rolleyes:
sergwizard
25.01.2003, 22:28
Нет Макс, тоже не то. Твой способ тоже не решает моей проблемы. Я делал так:
System.UseCodepage = true;
//начало ф-ции рисования окна
_global.depth = 0;
function window(x, y, w, h, file, vars, targ) {
nam = "win"+depth;
targ.createEmptyMovieClip(nam, ++depth);
targ[nam]._x = x;
targ[nam]._y = y;
targ[nam].createTextField("tt", ++depth, 0, 0, w-20, h);
targ[nam].tt.multiline = true;
targ[nam].tt.html = true;
targ[nam].tt.variable = "txt";
targ[nam].tt.wordWrap = true;
targ[nam].tt.type = "dynamic";
myformat = new TextFormat();
myformat.color = 0x000000;
myformat.font ="Arial Cyr";
myformat.size = 14;
targ[nam].tt.setTextFormat(myformat);
var ys = ((h-56)/100)*100;
targ[nam].attachMovie("scrollbar", "scrollbar", ++depth, {_x:w-10, _y:28, _yscale:ys});
targ[nam].attachMovie("arrow", "up", ++depth, {_x:w-10, _y:28, s:-1});
targ[nam].attachMovie("arrow", "down", ++depth, {_x:w-10, _y:h-28, s:1, _yscale:-100});
targ[nam].up.onMouseDown = _root.check;
targ[nam].down.onMouseDown = _root.check;
targ[nam].up.onMouseUp = _root.free;
targ[nam].down.onMouseUp = _root.free;
//подгружаем внешний файл
targ[nam].loadVariables(file,++depth);
}
function check() {
if (this.hitTest(_root._xmouse, _root._ymouse, 1)) {
this._parent.d = this.s;
}
}
function free() {
this._parent.d = 0;
}
window(100, 50, 350, 200, "text.txt","txt", this);
А проблема в том, что заданный TextFormat() не работает. Он устанавливается default, и все. И все свойства, которые я ему прописываю, - по боку. Я надеялся, что в твоем варианте как-то это решено. Блин, как это побороть?
Оригинал написал(а) sergwizard
Зачем усложнять, маскировать клип? И на MX для этого не надо переходить. Все спокойно делается и в пятерке. Примерно так.
параллельный вопрос, loadVariablesNum(); ждет загрузки файла? или мовик бежит дальше? иными словами надо ли делать прелоадер?
и ещё если loadVariablesNum("text.txt", 10);
как с левела 10 переменные вынимать?
Max N Chubin_
26.01.2003, 15:46
а в таком варианте?
установка формата после того как в окно вставляется текст из файла.
;)
Оригинал написал(а) Max N Chubin_
а в таком варианте?
установка формата после того как в окно вставляется текст из файла.
;)
для 5ого ....
я понял, но появился новый вопрос:
тема http://www.flasher.ru/forum/showthread.php?threadid=42317
Оригинал написал(а) sergwizard
Из исходника поймешь, в чем дело. Текстовый файл - тот же, поэтому не вкладываю.
Удачи.
слушай
вот твой пример:
Scene 1
Layer 2
frame 1
actions for frame 1
loadVariablesNum ("text.txt", 0);
Layer 1
frame 1
(empty), (txt)
Symbol 2
Symbol 3
Layer 3
frame 1
Symbol Definition(s)
Symbol 2
Layer 1
frame 1
Symbol 1
actions for Symbol 1
on (rollOver) {
_root.txt.scroll--;
вот это, как эту строчку изменить? у стрелочек ни в либе ни на сцене такого акшина нет...
и ещё scroll, это свойство dinamic texta? как оно работает?
frame 2
Symbol 1
Symbol 3
Layer 1
frame 1
Symbol 1
actions for Symbol 1
on (rollOver) {
_root.txt.scroll++;
}
frame 2
Symbol 1
Symbol 1
Layer 1
Up
Max N Chubin_
27.01.2003, 01:44
2 vario:
ты почитай мануал, там есть примеры работы с текстовыми полями. Мой атач для sergwizard , ответ на его вопрос.
да я собственно ман читал... просто неясно куда он скрипт вставил... смысл ясен... короче закрыта тема.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.