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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.07.2007, 10:12
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 41  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
Какой именно??
http://www.friday13.pisem.net/
у всех прямоугольников верхняя левая точка это TextField[_x, _y]
Зеленый прямоугольник - TextField.getTextFormat().getTextExtent(TextField.text)[width, height]
Красный прямоугольник TextField[_width, _height]
Синий прямоугольник TextField[textWidth, textHeight]
__________________
Тут вам не здесь!!!

Старый 05.07.2007, 10:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 42  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
Сообщение от Friday13
Какой именно??
вот этот http://www.flasher.ru/forum/showpost...6&postcount=26
битмапа используется не для того, чтобы передать саму картинку, а чтобы определить истинные размеры
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 10:37
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 43  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
ага... вроде получилось, как выложить пример для будущих поколений???
__________________
Тут вам не здесь!!!

Старый 05.07.2007, 10:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 44  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Код киньте Аттачи временно не работают.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 10:41
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 45  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
Блин.. на ChinaCyr код работает, для Dollar глючит((

в Stage нужно создать текстовое поле, обозвать z, внедрить нужные фонты, написать что нибудь в нем, конвертнуть в символ MovieClip и обозвать тоже z

Код:
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform;
trace(getTimer());
z.z.autoSize = "left";
var myBitmapData:BitmapData = new BitmapData(z._width * 1.3, z._height * 1.3, false, 0x00000000);
var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth());
mc_1._x = 10;
mc_1._y = 10;
z.autoSize = "left";
var myMatrix:Matrix = new Matrix();
myMatrix.ty = z._width * 0.15;
myMatrix.ty = z._height * 0.15;
myMatrix.scale(z._xscale / 100, z._yscale / 100);
mc.onMouseDown = function() {
	var alpha:String = (myBitmapData.getPixel32(this._xmouse, this._ymouse) >> 24 & 0xFF).toString(16);
	trace(">> alpha: " + alpha);
	// ff
	var red:String = (myBitmapData.getPixel32(this._xmouse, this._ymouse) >> 16 & 0xFF).toString(16);
	trace(">> red: " + red);
	// aa
	var green:String = (myBitmapData.getPixel32(this._xmouse, this._ymouse) >> 8 & 0xFF).toString(16);
	trace(">> green: " + green);
	// cc
	var blue:String = (myBitmapData.getPixel32(this._xmouse, this._ymouse) & 0xFF).toString(16);
	trace(">> blue: " + blue);
	// ee
	trace("0x" + alpha + red + green + blue);
	// 0xffaaccee
};
var myColorTransform:ColorTransform = new ColorTransform(0, 0, 1, 1, 0, 0, 255, 0);
var blendMode:String = "normal";
var myRectangle:Rectangle = new Rectangle(0, 0, z._width * 1.3, z._height * 1.3);
var smooth:Boolean = false;
myBitmapData.draw(z, myMatrix, myColorTransform, blendMode, myRectangle, smooth);
var colorBoundsRect:Rectangle = myBitmapData.getColorBoundsRect(0xff0000FF, 0xFF000000, false);
trace(colorBoundsRect);
var my = this.createEmptyMovieClip("my", this.getNextHighestDepth());
my._x = colorBoundsRect.x + 10;
my._y = colorBoundsRect.y + 10;
my.lineStyle(0.25, 0xffffff);
my.lineTo(colorBoundsRect.width, 0);
my.lineTo(colorBoundsRect.width, colorBoundsRect.height);
my.lineTo(0, colorBoundsRect.height);
my.lineTo(0, 0);
trace(getTimer());
ПАЛУЧИЛАСЬ!

Всем спасибо
__________________
Тут вам не здесь!!!


Последний раз редактировалось iNils; 05.07.2007 в 11:39.
Старый 05.07.2007, 11:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 46  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Не надо создавать несколько сообщений подряд, надо исправить последнее в теме.

Что-то код слишком громоздкий. Мой вариант:
Код:
function getSize (txt:TextField):Object {
	var bmp:BitmapData = new BitmapData (Math.ceil (txt._width), Math.ceil (txt._height), true, 0x00);
	var bmpW:BitmapData = new BitmapData (1, bmp.height, true, 0x00);
	var bmpH:BitmapData = new BitmapData (bmp.width, 1, true, 0x00);
	bmp.draw (txt);
	var offsetW:Number = 0;
	var offsetH:Number = 0;
	var i:Number = bmp.width;
	while (i > 0 && !bmp.hitTest (new Point (0, 0), 1, bmpW, new Point (i, 0), 0)) {
		i--;
	}
	offsetW = i;
	i = 0;
	while (i < bmp.width && !bmp.hitTest (new Point (0, 0), 1, bmpW, new Point (i, 0), 0)) {
		i++;
	}
	offsetW -= i - 2;
	////
	i = bmp.height;
	while (i > 0 && !bmp.hitTest (new Point (0, 0), 1, bmpH, new Point (0, i), 0)) {
		i--;
	}
	offsetH = i;
	i = 0;
	while (i < bmp.height && !bmp.hitTest (new Point (0, 0), 1, bmpH, new Point (0, i), 0)) {
		i++;
	}
	offsetH -= i - 2;
	return {w:offsetW, h:offsetH};
}
var o:Object = getSize (txt);
trace (o.w + " " + o.h);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 12:04
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 47  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
А координаты текстового поля? верхнего левого пикселя?

У меня в коде много мусора Вспомогательного, я не почистил, на радостях бросил все что было в фрейме.
__________________
Тут вам не здесь!!!

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно еще так попробовать
Код:
function getSize (txt:TextField):Object {
	var bmp:BitmapData = new BitmapData (Math.ceil (txt._width), Math.ceil (txt._height), true, 0);
	bmp.draw (txt);
	var rec:Rectangle=bmp.getColorBoundsRect(0xFF000000, 0x00000000,false);
	return {w:rec.width, h:rec.height};
}
если надо с координатами TL угла
Код:
function getSize (txt:TextField):Rectangle {
	var bmp:BitmapData = new BitmapData (Math.ceil (txt._width), Math.ceil (txt._height), true, 0);
	bmp.draw (txt);
	return bmp.getColorBoundsRect(0xFF000000, 0x00000000,false);
}


Последний раз редактировалось silin; 05.07.2007 в 12:09.
Старый 05.07.2007, 12:21
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 49  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Еще лучше Но у меня получилось, что к ширине и высоте надо по пикселю добавлять.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 12:22
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 50  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
Цитата:
Сообщение от silin
bmp.draw (txt);
гы... чего то отказался метод draw рисовать объект TextField
__________________
Тут вам не здесь!!!

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

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

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


 


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


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