Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.05.2014, 00:16
ilmira вне форума Посмотреть профиль Отправить личное сообщение для ilmira Найти все сообщения от ilmira
  № 1  
Ответить с цитированием
ilmira

Регистрация: Jun 2012
Сообщений: 22
По умолчанию Выделить одно слово в тексте (классическом)

Здравствуйте, дорогие форумчане!

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

- Весь текст лежит в классическом тексте text1, а он связан с UIScrollbar.
- Текст прокручивается.

Мне нужно, чтобы некоторые слова в тексте были жирными, а если выделяю и нажимаю "ж", то весь текст становится жирным((

как можно решить эту проблему?

Старый 16.05.2014, 00:33
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 2  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Вот как это можно сделать:
Код AS3:
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.text.TextField;
import flash.text.TextFormat;
 
tf_text.addEventListener(KeyboardEvent.KEY_UP, keyUp);
 
function keyUp(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.B)
	{
		var tf:TextFormat = (tf_text as TextField).getTextFormat(tf_text.selectionBeginIndex, tf_text.selectionEndIndex);
		tf.bold = !tf.bold;
		tf_text.setTextFormat(tf, tf_text.selectionBeginIndex, tf_text.selectionEndIndex);
	}
}
По нажатию на кнопку "B" выделенный текст будет жирным.
Untitled-1.swf   (20.2 Кб)
Вложения
Тип файла: zip Archive.zip (451.0 Кб, 16 просмотров)
Тип файла: swf Untitled-1.swf (20.2 Кб, 127 просмотров)

Старый 16.05.2014, 17:37
ilmira вне форума Посмотреть профиль Отправить личное сообщение для ilmira Найти все сообщения от ilmira
  № 3  
Ответить с цитированием
ilmira

Регистрация: Jun 2012
Сообщений: 22
Цитата:
Сообщение от TWETTI Посмотреть сообщение
Вот как это можно сделать:
Код AS3:
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.text.TextField;
import flash.text.TextFormat;
 
tf_text.addEventListener(KeyboardEvent.KEY_UP, keyUp);
 
function keyUp(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.B)
	{
		var tf:TextFormat = (tf_text as TextField).getTextFormat(tf_text.selectionBeginIndex, tf_text.selectionEndIndex);
		tf.bold = !tf.bold;
		tf_text.setTextFormat(tf, tf_text.selectionBeginIndex, tf_text.selectionEndIndex);
	}
}
По нажатию на кнопку "B" выделенный текст будет жирным.
Untitled-1.swf   (20.2 Кб)
спасибо большое за отклик! а как можно сделать, чтобы некоторые слова уже при запуске были жирными, и оставались такими навсегда?

Старый 16.05.2014, 18:30
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Через форматирование html например
__________________
Марк Tween

Старый 16.05.2014, 23:41
ilmira вне форума Посмотреть профиль Отправить личное сообщение для ilmira Найти все сообщения от ilmira
  № 5  
Ответить с цитированием
ilmira

Регистрация: Jun 2012
Сообщений: 22
Цитата:
Сообщение от in4core Посмотреть сообщение
Через форматирование html например
Это электронный учебник, на выходе будет файл swf или exe (win projector). С html-ом не связано(

Видимо придется вместо жирного шрифта сделать звездочки или еще что-то придумать.

Добавлено через 38 секунд
Flash cs5.5 actionscript 3.0 кстати

Старый 17.05.2014, 00:01
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
А вам обязательно делать с помощь кода? Если ваш текст не подгружается ни откуда (как мне подумалось), то можете во Flash CS сделать текстовое поле не динамическим, а статическим. Тогда можно вручную выделать слова и менять жирность, да и всё остальное тоже и шрифт, размер и прочее.
----------------------------
А нет, похоже UIScrollbar не работает со статическим текстом... Жаль.


Последний раз редактировалось samana; 17.05.2014 в 00:12.
Старый 17.05.2014, 00:23
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Это электронный учебник, на выходе будет файл swf или exe (win projector). С html-ом не связано(
textfield.htmlText - почитайте справку, там задаются <b> где угодно. Текст грузим хоть из XML хоть откуда и работаем с тегами
__________________
Марк Tween

Старый 17.05.2014, 19:08
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
package 
{
	import flash.display.*;
	import flash.text.*;
 
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			var tf:TextField = new TextField();
			tf.autoSize = TextFieldAutoSize.LEFT;
			tf.text = " как можно сделать, чтобы некоторые слова уже при запуске были жирными, и оставались такими навсегда";
			var someWords:Array = ["сделать", "некоторые", "слова"];
			for (var i:int = 0; i < someWords.length; i++) 
			{
				var word:String = someWords[i];
				var i1:int = tf.text.indexOf(word);
				while (i1 > -1)
				{
					var i2:int = i1 + word.length;
					var fmt:TextFormat = tf.getTextFormat(i1, i2);
					fmt.bold = true;
					fmt.color = 0xFF0000;
					tf.setTextFormat(fmt, i1, i2);
					i1 = tf.text.indexOf(word, i2);
				}
 
			}
 
			addChild(tf);
		}
 
	}
 
}

Старый 18.05.2014, 13:29
ilmira вне форума Посмотреть профиль Отправить личное сообщение для ilmira Найти все сообщения от ilmira
  № 9  
Ответить с цитированием
ilmira

Регистрация: Jun 2012
Сообщений: 22
Цитата:
Сообщение от silin Посмотреть сообщение
Код AS3:
package 
{
	import flash.display.*;
	import flash.text.*;
 
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			var tf:TextField = new TextField();
			tf.autoSize = TextFieldAutoSize.LEFT;
			tf.text = " как можно сделать, чтобы некоторые слова уже при запуске были жирными, и оставались такими навсегда";
			var someWords:Array = ["сделать", "некоторые", "слова"];
			for (var i:int = 0; i < someWords.length; i++) 
			{
				var word:String = someWords[i];
				var i1:int = tf.text.indexOf(word);
				while (i1 > -1)
				{
					var i2:int = i1 + word.length;
					var fmt:TextFormat = tf.getTextFormat(i1, i2);
					fmt.bold = true;
					fmt.color = 0xFF0000;
					tf.setTextFormat(fmt, i1, i2);
					i1 = tf.text.indexOf(word, i2);
				}
 
			}
 
			addChild(tf);
		}
 
	}
 
}
этот код можно вставить в окно "Действия"?

Старый 18.05.2014, 15:11
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 10  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от ilmira Посмотреть сообщение
этот код можно вставить в окно "Действия"?
Нет, это просто один из вариантов. Всё же точнее будет сделать выделение слов вручную, как вам подсказали выше, через теги. То-есть вам нужно завести переменную с вашим текстом, выделить нужные слова тегами и назначить текст текстовому полю, например.
Код AS3:
//ваш текст с тегами <b>слово между этими тегами станет жирным</b>
var myText:String= "На <b>флешере.ру</b>, сидят довольно <b>добрые</b> и <b>отзывчивые</b> люди! Буду <b>заходить</b> сюда за советом <b>в любое время!</b>"
 
//ваше текстовое поле на сцене
tf.htmlText = myText;

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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