![]() |
|
||||||||||
|
|||||
|
Регистрация: 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;
}
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
Упсь! Бум пробовать!Andromed! Букет решпектов тебе! Эх! Жаль, пивка с тобой не попить! |
|
|||||
|
Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
|
Присоединяюсь с букетом
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
спасибо
насчет пива я подумаю а за букет респектов отдельное спасибо |
|
|||||
|
народ, выложите исходники все еще раз плз, хочу разобраться о чем тут речь шла...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|