Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Problema... obsudim???? (http://www.flasher.ru/forum/showthread.php?t=22573)

yurail 06.11.2001 18:08

Problema... obsudim????
 
vse znayut znamenitii TextEffect....
vse im polzuyutsja....
ok....
no vot voznikla u menja neobhodimost sdelat eto zhe samoe no na IVRITE....
ok... kogda vistavljayu _x prosto delayu :
Цитата:

setProperty ("char" add this.i, _x, 100-this.g*this.kerning);
t.e. MINUS.... vse rabotaet, pishet sprava - nalevo, NO :

v ivrite est bukvi kotorie po svoei shirine goraaazdo men'she obichnih.... t.e. kerning u nih dolzhen bit drugoi....
takih bukv nemnogo 4-5....

tak vot vopros... u kogo est kakie predlozhenija dlja organizacii massiva dannih iz etih bukv, tak chtobi vstrechaja ih kerning menjalsja bi.........?????????????????????????????

yurail 06.11.2001 18:49

dobavlenie:
"kerning" - eto peremennaja, rasstojanie mezhdu bukvami.....

Fisher 06.11.2001 19:55

Уточни пожалуйста - у тебя для кернинга только два значения?

yurail 06.11.2001 20:04

da...
dva...
t.e. esli bukvi obichnie to.... 20 (naprimer)
a esli uzkaja 15......

problema v tom, chto bukvu vichislit mozhno...
i postavit ei kerning otdelnii.... no ved i pered nei tozhe dolzhen kerning pomenjatsja......

yurail 06.11.2001 20:11

Вложений: 1
vot posmotri:

vtoraja bukva sleva..... "IYD" nazivaetsja......
ona uzhe chem ostalnie,....

Fisher 06.11.2001 20:34

Приблизительно так
if ( sim=="a" or sim=="b" or sim=="b") {
kr = 15;
} else {
kr = 20;
}
_root["char"+i]._x = _root["char"+(i-1)]._x-kr;
Т.е. определяешь кернинг для символа а его позицию находишь не бездушным умножением на i :p а суммированием(в твоем случае вычитанием) кернинга и позиции предыдущего символа.

yurail 06.11.2001 20:49

poluchilos tak:
Код:

duplicateMovieClip ("char", "char" add this.i, this.i);
set ("char" add this.i add "/letter:char", substring(this.text, this.i, 1));
if (substring(this.text, this.i, 1) =="й") {
    trace ("IUD");
    this.kerning = 40;
} else {
    this.kerning = 50;
}
this["char"+this.i]._x = this["char"+(this.i-1)]._x-this.kerning;
setProperty ("char" add this.i, _xscale, 10*this.size);
setProperty ("char" add this.i, _yscale, 10*this.size);
this.i = Number(this.i)+1;

i vse bi horosho.. NO...
nuzhno ved pered etim simvolom i POSLE nego TOZHE............

:confused: :confused: :confused: :confused:

yurailHome 07.11.2001 00:31

a v otvet tishina........

1Cat 07.11.2001 04:40

Варианта 2 (или больше) ;)
Первый: проверять и текущий, и предущий символ
if ((substring(this.text, this.i, 1) =="й")||(substring(this.text, this[i-1], 1) =="й")) {
trace ("IUD");
this.kerning = 40;
} else {
this.kerning = 50;
}
Второй: брать минимум между this.kerning и предыдущим
this["char"+this.i]._x = this["char"+(this.i-1)]._x-
Math.min(this.kerning, this["char"+(this.i-2)]._x-this["char"+(this.i-1)]._x);

C2Plus 07.11.2001 08:09

на самом деле все просто как божий день(и ничего что только 7 утра;)

Заводим курсор, который отвечает за текущую позицию, и ставим новый символ согласно ему. Как только поставили новый символ, двигаем курсор. Вот и все.

Примерно так:
cursor = new Object();
cursor.x = 100;
cursor.y = 100;

Standart_K = 20;

function NewChar(char){
height = Standart_K; /// определяем ширину буки по дефолту
if (char eq "i") height = 10; // меняем если надо

drawChar(char, cursor.x, cursor.y); // рисуем буку.

cursor.x -= height; // двигаем курсор.

if (cursor.x < Standart_K){ /// перевод строки
cursor.x = 100;
cursor.y += 20;
}

}



вот и все. :)


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

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