Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   как создать перспективный Dynamic Text (http://www.flasher.ru/forum/showthread.php?t=142608)

CyberWolf15 26.07.2010 01:35

как создать перспективный Dynamic Text
 
Здраствуйте, скажите пожалуйста как создать динамический текс который отображался в перспективе

Хемуль 26.07.2010 01:45

Посмотрите http://www.silin.su
Там есть искажения Bitmap'ов. Вам нужно будет отрисовать ваш текст в BitmapData предварительно.
Кстати, какая версия ActionScript?

CyberWolf15 26.07.2010 01:56

Вложений: 1
AS2, возможно ли квадрат динамического текста, сделать перспективный, то есть то что будет загружаться в дин. текст выглядел перспективным, это нужно потому что текст должен быть написан на рекламном шите.

Хемуль 26.07.2010 02:00

Ну вот, посмотрите:
http://www.silin.su/#AS2/distort
Может и не супер-перспектива, но что-то похожее.

CyberWolf15 26.07.2010 02:53

Вложений: 1
Спасибо, за пример, но этот очень сложный, не смог разобраться, нельзя как то по легче создать Динамический Текст который будет выглядеть вот так

Хемуль 26.07.2010 03:18

2 CyberWolf15:
Так а что сложного-то?
- Делаем в библиотеке какой-то MovieClip с динамическим текстовым полем, задним фоном и т.п., задаём ему Linkage Id.
- Вытягиваем MovieClip на сцену из библиотеки с помощью attachMovie.
- Задаём текстовому полю внутри MovieClip'a текст.
- Создаём экземпляр BitmapData.
- Отрисовываем MovieClip в BitmapData c помощью метода draw.
- Удаляем MovieClip со сцены за ненадобностью.
- Создаём экземпляр DistortBitmap, передав в конструктор нашу BitmapData.
- Растягиваем DistortBitmap по четырём точкам, используя метод distort.

Там довольно простой класс с очень прозрачным и понятным кодом. Я говорю о http://www.silin.su/#AS2/distort

CyberWolf15 26.07.2010 13:45

Цитата:

Сообщение от Хемуль (Сообщение 924973)
2 CyberWolf15:
Так а что сложного-то?
- Делаем в библиотеке какой-то MovieClip с динамическим текстовым полем, задним фоном и т.п., задаём ему Linkage Id.
- Вытягиваем MovieClip на сцену из библиотеки с помощью attachMovie.
- Задаём текстовому полю внутри MovieClip'a текст.
- Создаём экземпляр BitmapData.
- Отрисовываем MovieClip в BitmapData c помощью метода draw.
- Удаляем MovieClip со сцены за ненадобностью.
- Создаём экземпляр DistortBitmap, передав в конструктор нашу BitmapData.
- Растягиваем DistortBitmap по четырём точкам, используя метод distort.

Извини пожалуйста, но я новичок в флеше, и никак не смог сделать это, если это возможно ты сможешь сделать это и отправить мне в .fla ?

Contemplator 26.07.2010 14:11

По-хорошему... если нет требований 8/9 плееров - то можно исказить поле посредством имеющихся в CS4 инструментов для работы с псевдо-3D (предварительно обернув его мувиклипом)... одна только проблема в твоём случае - проект должен будет быть на AS3 =)

Добавлено через 1 минуту
Цитата:

Сообщение от CyberWolf15 (Сообщение 925033)
Извини пожалуйста, но я новичок в флеше, и никак не смог сделать это, если это возможно ты сможешь сделать это и отправить мне в .fla ?

с такими обращениями - в вакансии всё-таки ;)

shaman4d 26.07.2010 14:38

Можете использовать DisplacementMapFilter, он уже и под 8й плеер был

Хемуль 26.07.2010 16:48

Вложений: 1
2 CyberWolf15:
Как-то так...
В прикреплённом примере углы "панели в перспективе" задаются Button'ами для наглядности.
Код AS1/AS2:

var TEXT_CLIP_NAME:String = "text";
var TEXT_CLIP_LIBRARY_ID:String = "textClip";
var TEXT_STRING:String = "Hello, World!";
var TEXT_PADDING:Number = 20;
 
import com.silin.DistortBitmap;
import com.silin.InstanceManager;
import flash.display.BitmapData;
import flash.geom.Point;
 
topLeftCorner.useHandCursor = false;
topRightCorner.useHandCursor = false;
bottomRightCorner.useHandCursor = false;
bottomLeftCorner.useHandCursor = false;
 
var textClip:MovieClip = this.attachMovie(TEXT_CLIP_LIBRARY_ID, TEXT_CLIP_NAME, this.getNextHighestDepth(), {_x:Stage.width, _y:Stage.height});
textClip.underlay._alpha = 0;
textClip.textField.autoSize = true;
textClip.textField.text = TEXT_STRING;
textClip.textField._x = textClip.textField._y = TEXT_PADDING;
textClip.underlay._width = textClip.textField._width + 2 * TEXT_PADDING;
textClip.underlay._height = textClip.textField._height + 2 * TEXT_PADDING;
 
var bitmapData:BitmapData = new BitmapData(textClip._width, textClip._height, true, 0x00000000);
bitmapData.draw(textClip);
textClip.removeMovieClip();
 
var distortBitmap:DistortBitmap = InstanceManager.createMC(this, DistortBitmap, bitmapData, 4, 3);
distortBitmap.distort([
        new Point(topLeftCorner._x, topLeftCorner._y),
        new Point(topRightCorner._x, topRightCorner._y),
        new Point(bottomRightCorner._x, bottomRightCorner._y),
        new Point(bottomLeftCorner._x, bottomLeftCorner._y)
]);



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

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