половина буквы одного цвета, а половина другого цвета - PullRequest
0 голосов
/ 10 января 2011

alt text

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

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

письмо пришло с этого сайта:

http://www.oryanit.com/site/2.1.asp?user=oryanit&site=56

Ответы [ 2 ]

1 голос
/ 10 января 2011

Боюсь, вы не можете сделать это во Flash с динамическими полями текста.

0 голосов
/ 10 января 2011

вот базовый пример:

import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.geom.Point;

/*
* This is your character
*/
var tf:TextField = new TextField();
tf.selectable = false;
tf.text = "B";
addChild(tf);
var fmt:TextFormat = new TextFormat();
fmt.size = 50;
tf.setTextFormat(fmt);

//Creating a bitmapData from the TextField
var tfBD:BitmapData = new BitmapData(tf.textWidth, tf.textHeight);
tfBD.draw(tf);
var tfB:Bitmap = new Bitmap(tfBD);
addChild(tfB);

//Creating the top part of the character
var tfTopBD:BitmapData = new BitmapData(tfBD.width, tfBD.height/2);
tfTopBD.copyPixels(tfBD, new Rectangle(0, 0, tfBD.width, tfBD.height/2), new Point(0, 0));
var tfTopB:Bitmap = new Bitmap(tfTopBD);
addChild(tfTopB);

//Creating the bottom part of the character
var tfBottomBD:BitmapData = new BitmapData(tfBD.width, tfBD.height/2);
tfBottomBD.copyPixels(tfBD, new Rectangle(0, tfBD.height/2, tfBD.width, tfBD.height/2), new Point(0, 0));
var tfBottomB:Bitmap = new Bitmap(tfBottomBD);
addChild(tfBottomB);


tfB.x = Math.round(stage.stageWidth/2 - tfB.width/2);
tfB.y = Math.round(stage.stageHeight/2 - tfB.height/2);
tf.x = tfB.x - 50;
tf.y = tfB.y;
tfTopB.x = tfB.x + 50;
tfTopB.y = tfB.y;
tfBottomB.x = tfB.x + 50;
tfBottomB.y = tfB.y + tfTopB.height + 10;

По сути, я создаю два объекта bitmapData и копирую в них содержимое textField, чтобы получить верхнюю и нижнюю части символа.Затем вы можете перекрасить их по своему желанию.

Для раскраски в AS3 я бы порекомендовал использовать твиннинг-движок Greensock, поэтому я предпочитаю использовать colorMatrixes и другие некрасивые вещи.http://www.greensock.com/

Надеюсь, это тебе подходит, Роб

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...