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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Aug 2005
Сообщений: 83
Ну и наверно последнее.. чтото больше нетпридумывается вроде почти все новое расмотрели из интересного.
и так Scale9Grid позволяет ресайзить картинку не изменяя ее границ.. очень полезно для кнопок и прочего, обратите внимание что scale9 можно включать прямо в бибилиотекте объекта (не програмно), для этого нужно зайти в propertis объекта и снизу поставить галочку Enable Guides for 9-slice scaling, сразу в нутри мувика появятся 4 линии и сетка, с помощью которых можно выстовить границы, програмно же все сводится к тому чтобы задать прямоуголник и присвоить его параметру 9scale

var grid:flash.geom.Rectangle = new flash.geom.Rectangle(x,y, width, height);
MC.scale9Grid = grid;

и так пример
http://www.vipsauna.com/test/Scale9.html
исходник
http://www.vipsauna.com/test/Scale9.fla

код без комментов , так как основа кода это раскрашивание и обработка событий, сам скале только в 2 строчках, да кстати если внутри мувиклипа у вас есть др мувики и вы применили scale9Grid, то внутренние мувики будут отображаться некорректно, это есть небольшой минус

Код:
import flash.geom.*;
Stage.scaleMode = 'noScale';
this.createEmptyMovieClip("Nitka", 1);
vintik.swapDepths(Nitka);
var Shadow = new flash.filters.DropShadowFilter(10, 30, 0x000000, 10, 50, 50, 1, 2, false, false, false);
pic.filters = [Shadow];
Nitka.filters = [Shadow];
var manipulate = new flash.geom.Point(0, 0);
var old_mouse;
var new_mouse;
var border = 10;
var left = -pic._width/2+border;
var top = -pic._height/2+border;
var right = pic._width/2-border;
var buttom = pic._height/2-border;
var grid:Rectangle = new Rectangle(left, top, right-left, buttom-top);
pic.scale9Grid = grid;
var fly = true;
var center = new flash.geom.Point(150, 150);
var gradient_matrix:Matrix = new Matrix();
gradient_matrix.createGradientBox(30, 30, 0, 0, 0);
onEnterFrame = function () {
	gradient_matrix.rotate(0.03);
	gradient_matrix.translate(5, 0);
	pic.clear();
	pic.beginGradientFill("radial", [0x000000, 0xFF6600], [100, 100], [0, 0xFF], gradient_matrix, "reflect", "linearRGB", 0.5);
	pic.moveTo(left, top);
	pic.lineTo(right, top);
	pic.lineTo(right, buttom);
	pic.lineTo(left, buttom);
	pic.lineTo(left, top);
	pic.endFill();
	Nitka.clear();
	Nitka.lineStyle(1, 0xffFFff, 50, true, "none", "round", "miter", 1);
	Nitka.moveTo(pic._x-pic._width/2, pic._y-pic._height/2);
	Nitka.lineTo(vintik._x, vintik._y);
	Nitka.lineTo(pic._x+pic._width/2, pic._y-pic._height/2);
	if (fly) {
		var point = new flash.geom.Point(pic._x, pic._y);
		var distance = Point.distance(point, center);
		var angle = Math.atan2(point.x-center.x, point.y-center.y);
		pic._x -= distance*Math.sin(angle)/7;
		pic._y -= distance*Math.cos(angle)/7;
		if (distance<2) {
			fly = false;
		}
	}
};
pic.onPress = function() {
	fly = false;
	var bounds = this.getBounds(this._parent);
	trace(bounds);
	if (_xmouse<bounds.xMin+border) {
		manipulate.x = -1;
	} else if (_xmouse>bounds.xMax-border) {
		manipulate.x = 1;
	} else {
		manipulate.x = 0;
	}
	if (_ymouse<bounds.yMin+border) {
		manipulate.y = -1;
	} else if (_ymouse>bounds.yMax-border) {
		manipulate.y = 1;
	} else {
		manipulate.y = 0;
	}
	trace(manipulate);
	old_mouse = new flash.geom.Point(_xmouse, _ymouse);
	this.onMouseMove = scalePictureMouseMove;
};
pic.onRelease = pic.onReleaseOutside=function () {
	fly = true;
	delete this.onMouseMove;
};
function scalePictureMouseMove() {
	new_mouse = new flash.geom.Point(_xmouse, _ymouse);
	var diff_mouse = new_mouse.subtract(old_mouse);
	this._width += manipulate.x*diff_mouse.x;
	this._height += manipulate.y*diff_mouse.y;
	var isDragging = Boolean(manipulate.x == 0 && manipulate.y == 0);
	if (manipulate.x<0 || isDragging) {
		this._x += diff_mouse.x;
	}
	if (manipulate.y<0 || isDragging) {
		this._y += diff_mouse.y;
	}
	old_mouse = new_mouse;
}

Старый 21.12.2005, 16:51
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 52  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Упсь! Бум пробовать!
Andromed! Букет решпектов тебе! Эх! Жаль, пивка с тобой не попить!

Старый 21.12.2005, 17:03
Верас Ольга вне форума Посмотреть профиль Отправить личное сообщение для Верас Ольга Найти все сообщения от Верас Ольга
  № 53  
Ответить с цитированием
Верас Ольга
 
Аватар для Верас Ольга

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
Присоединяюсь с букетом

Старый 21.12.2005, 17:05
Andromed вне форума Посмотреть профиль Отправить личное сообщение для Andromed Найти все сообщения от Andromed
  № 54  
Ответить с цитированием
Andromed

Регистрация: Aug 2005
Сообщений: 83
спасибо насчет пива я подумаю а за букет респектов отдельное спасибо

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
народ, выложите исходники все еще раз плз, хочу разобраться о чем тут речь шла...

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

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

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


 


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


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