Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Создание текстового поля по клику. (http://www.flasher.ru/forum/showthread.php?t=91801)

whatever 08.02.2007 19:29

Создание текстового поля по клику.
 
Привет.
Подскажите пожалуйста как сделать так, чтобы при клике на в любое место мувика, создавалось текстовое поле, в котором можно изменять шрифт/цвет/размеры ?
Спасибо.

etc 08.02.2007 20:52

Задача не решается в пределах одного поста, более того, людям потребуется потратить своё время на реализацию данной задачи.
Изучайте onPress, createTextField, textColor, TextFormat, etc.
При возникновении более конкретных вопросов (не из серии «Как мне сделать Word?»), вам помогут. В противном случае вы можете отправиться в раздел «вакансии», где за некоторое материальное вознаграждение люди потратят свое время на реализацию той задачи, которая вам нужна, с подробным объяснением всех моментов реализации.

whatever 08.02.2007 21:15

Спасибо за совет. Начну с того, что Вы посоветовали.
Если что-то не получится обязательно обращусь за доп помощью.

miramax 08.02.2007 21:19

Цитата:

Сообщение от __etc
В противном случае вы можете отправиться в раздел «вакансии», где за некоторое материальное вознаграждение люди потратят свое время на реализацию той задачи, которая вам нужна, с подробным объяснением всех моментов реализации.

Похоже он сам из этого раздела сюда пришёл :D

whatever 08.02.2007 22:12

Не могу найти нормальный туториал. Не подскажите линк?

etc 08.02.2007 22:20

Туториал по созданию редактируемых текстовых полей? :)
Это узкоспециализированная задача, у меня таких линков нет.

whatever 08.02.2007 22:27

:) не.. Вот у меня Flash8 Professional. Я нашел туториал под пятный флеш. Дочитал до AS. А тут все непонятно, типа выберите Normal mode выберите Pro mode. В этому туториале говорится что слева есть некий блок Basic Actions, которого я таки не вижу. (Качаю Flash5 :) )

etc 08.02.2007 22:30

Normal уже давно нет.

miramax 08.02.2007 22:36

Цитата:

Сообщение от whatever
(Качаю Flash5 :) )

Это есть большая ошибка. В восьмом флеше отличный хелп, что мешает поискать там MovieClip и TextField ?
Этого вполне хватит, задача не сложная.

whatever 08.02.2007 22:41

Учебник по FlashMX/ActionScript

whatever 08.02.2007 22:44

miramax, спасибо. как то сразу не догадался :)

whatever 09.02.2007 17:20

Всем привет!
Я немного разобрался. У меня теперь получается по клику создавать тектфилд в то место где я кликнул. Но я никак не могу сделать так, чтобы этот текстфилд можно было редактировать.
Подскажите пожалуйста, на что обратить внимание?

aksios 09.02.2007 17:58

Выбери тип текст филда - Input Text

whatever 09.02.2007 18:02

my_txt.type = InputText; ?

aksios 09.02.2007 18:05

Цитата:

Сообщение от whatever
my_txt.type = InputText; ?

Код:

my_txt.type = "input";

whatever 09.02.2007 18:06

Спасибо огромное!!! Так классно! :)

whatever 09.02.2007 18:08

А как сделать так, чтобы каретка сразу была в текст филде?

aksios 09.02.2007 18:35

Цитата:

Сообщение от whatever
А как сделать так, чтобы каретка сразу была в текст филде?

никак.

whatever 09.02.2007 18:38

Спасибо :)

whatever 09.02.2007 19:01

Я наверное уже задолбал со своими текстфилдами :) Но есть еще вопрос.
Вот у меня по клику создается текстфилд, я ему даю какое то имя.
А как мне сделать чтобы по следующему клику создавался еще один текстфилд, с именем txtfld1, по след клику txtfield2 и тд. Спасибо.

etc 09.02.2007 20:35

Цитата:

Сообщение от whatever
А как сделать так, чтобы каретка сразу была в текст филде?

Selection.setFocus

whatever 09.02.2007 21:55

Опаньки :) Мерси, работает.

whatever 09.02.2007 21:57

А как введенный в текстфилд текст выделять при клике?

Ventur 09.02.2007 22:08

Ну, думаю направление уловил.
Код:

function createTextField(x:Number, y:Number,mc:MovieClip, k:Number) {
        mc.createEmptyMovieClip("text"+k, k+1);
        mc["text"+k]._x = x;
        mc["text"+k]._y = y;
        mc["text"+k].createTextField("btxt", 0, 0, 0, 150, 20);
        mc["text"+k].btxt.html = true;
        mc["text"+k].btxt.wordWrap = true;
        mc["text"+k].btxt.text = "лалалал";
        btntf = new TextFormat();
        btntf.color = 0x000000;
        btntf.font = "verdana";
        btntf.leading = 10;
        btntf.size = 10;
       
}
createTextField(0,0,clip,1);

В функцию можешь добавиь любые свои параметры дополнительные. И передавай значение _xmouse и _ymouse

P.S.: help читать!!!

whatever 09.02.2007 23:09

Ventur, спасибо тебе. Но у меня ничего не получается, я не понимаю как вызвать эту функцию. Я пытался логически поразмышлять, и вот скажи пожалуйста в чем я не прав:
Надо сделать мувиклип, вот этот код вставить в него.
Дальше надо сделать кнопку из которой вызывать эту функицию,тоже по событию. А вызывается она как, скажи пожалуйста?
on (release){
createTextField(надо параметры?);
}
???

whatever 09.02.2007 23:22

нашел туториал по функциям. курю.

mitien 09.02.2007 23:46

Цитата:

Сообщение от whatever
Привет.
Подскажите пожалуйста как сделать так, чтобы при клике на в любое место мувика, создавалось текстовое поле, в котором можно изменять шрифт/цвет/размеры ?
Спасибо.

ГЫ.. почти тем же на данный момент занимаюсь:D

whatever 10.02.2007 00:04

mitien, пока нету Ventur'a ты можешь мне истолковать, как вызвать функцию, которую он написал, и с какими параметрами? и из какого символа? у меня никак не получается..

mitien 10.02.2007 00:22

Код:

var btnt_fmt:TextFormat = new TextFormat();
btnt_fmt.color = 0x000FF;
btnt_fmt.font = "verdana";
btnt_fmt.leading = 10;
btnt_fmt.size = 20;
k = 0

function createTextField(x:Number, y:Number, mc:MovieClip, k:Number) {
        mc.createEmptyMovieClip("text"+k, k+1);
        mc["text"+k]._x = x;
        mc["text"+k]._y = y;
        mc["text"+k].createTextField("btxt", 0, 0, 0, 150, 20);
        mc["text"+k].btxt.embedFonts = true;
        mc["text"+k].btxt.html = true;
        mc["text"+k].btxt.wordWrap = true;
        mc["text"+k].btxt.type = "input";
        mc["text"+k].btxt.text = "blablabla";
        mc["text"+k].btxt.setTextFormat(btnt_fmt);
        trace(k);
}
onMouseDown = function () {
        createTextField(_xmouse, _ymouse, this, k);
        k++;
};



я немного подправил:)
скопируй в первый кдр мувика и скомпилируй..

whatever 10.02.2007 00:30

работает :) возвращаетс 1,2,3,4,5,6....
тока текстфилды не делает

mitien 10.02.2007 00:34

а тепеь построчно:)

Код:

var btnt_fmt:TextFormat = new TextFormat();
btnt_fmt.color = 0x000FF;  //цвет
btnt_fmt.font = "verdana"; //шрифт
btnt_fmt.leading = 10; //расстояние между строчками в пикселях
btnt_fmt.size = 20; //размер

это мы задаем формат текста

Код:

k = 0
начальное значение уровня на котором будет текст
ЗЫ: вообще то лучше 1 поставить... или больше:D

Код:

function createTextField(x:Number, y:Number, mc:MovieClip, k:Number) //функция которая поле и задает
 {
        mc.createEmptyMovieClip("text"+k, k+1); //создаем новый пустой мувик mc с именем "text+уровень" (как раз то что мы и передаем помимо начальных координат)
        mc["text"+k]._x = x; 
        mc["text"+k]._y = y;
        mc["text"+k].createTextField("btxt", 0, 0, 0, 150, 20); //создаем текстовое поле
       
        mc["text"+k].btxt.html = true; //говорим плееру обрабатывать текст как хтмл
        mc["text"+k].btxt.wordWrap = true; //разрешаем переносить слова
        mc["text"+k].btxt.type = "input"; //делаем поле "инпут" если щелкнешь и мышой поведешь то сразу текст можно изменять

        mc["text"+k].btxt.text = "blablabla";  //текст созданного поля
        mc["text"+k].btxt.setTextFormat(btnt_fmt);  //применяем к тексту формат
       
}

Код:

this.onMouseDown = function () {
        createTextField(_xmouse, _ymouse, this, k);
        k++;
}

// при нажатии кнопки мышы - вызываем создание тексового поля

Код:

this.onMouseDown=...
вместо this можешь поставить имя своего мувика, тогда событие будет вызываться только по клику на нем

mitien 10.02.2007 00:44

Цитата:

Сообщение от whatever
работает :) возвращаетс 1,2,3,4,5,6....
тока текстфилды не делает

убери строчку с ембедед.. делать оно делает только не ыидно их.. я просто добавлял для теста на поле тестовое поле ручками и в него подключал шрифт

whatever 10.02.2007 01:06

поставить false или вообще убрать?
если его сделать false или закомментировать, он выводит текстфилды, но видно только "верхи". у тебя тоже так?
--
т.е как будто верхнюю часть текстфилда оставили а нижнюю отрезали.
__
все хорошо. был слишком маленький размер текстфилдов. mitien, спасибо огромное, очень доступно объяснил.

mitien 10.02.2007 02:27

поигргайся с цифрами.. размерами и типами шрифта..
а вообще есть все таки хелп.. ну и еще поиск на форуме.. похожие темы часто встречаются

Ventur 10.02.2007 03:16

Полагаю, уже не уместно вмешательство))

whatever 10.02.2007 12:54

Да, но есть еще вопрос, если вы не против :)
Каждый раз когда мы кликаем, у нас создается текстфилд. А имя "им всем" какое?
Или у всех имя одно и то же, а имена меняются только у мувиклипиков?
Тогда как сделать так чтобы по press этот мувик(текстфилд) можно было перетаскивать?

Код:

startDrag(mc["text"+k].btxt);
?

Ventur 10.02.2007 12:57

а имя им всем именно такое
Код:

mc["text"+k]
т.е. клип создаем в клипе mc, а именно

mc.text0, mc.text1....

whatever 10.02.2007 13:20

Не получается. Правильно понял, например я создаю button в который пишу
Код:


on (press){
startDrag (mc["text"+k]);
}

?


Часовой пояс GMT +4, время: 20:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.