Другие языки программирования и технологии

как на ActionScript сделать растягивающийся квадрат, следующий за курсором мыши (обычно выделение мышкой, при зажатой ле

левой кнопке)
Спешл фор ю.
Вполне грамотная реализация того, что вам надо. Если хотите научиться писать, разберите этот пример от и до, в комментариях, что к чему, я все описал.

здесь можете посмотреть онлайн версию (код и результат) , но она реализована в классе:
http://wonderfl.net/c/iIMS

этот код можете просто вставить в IDE:

import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.MouseEvent;
import flash.geom.Point;

var p:Point;

//функция рисует окно и кнопку по заданным параметрам и возвращает (return square) результат
function createSquare(initWidth:int, initHeight:int, color:uint = 0x0000FF):Sprite {
var square:Sprite = new Sprite()
square.graphics.beginFill(color);
square.graphics.drawRect(0, 0, initWidth, initHeight);
square.graphics.endFill();

return square;
}

var container:Sprite = new Sprite();
addChild(container);

//создание основы и добавления в список отображения контейнера
var square:Sprite = createSquare(100, 100);
container.addChild(square);
//Выравнивание окна по центру
container.x = stage.stageWidth/2 - container.width/2;
container.y = stage.stageHeight/2 - container.height/2;
square.addEventListener(MouseEvent.MOUSE_DOWN, containerDown);
stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUp);

//создание кнопки и добавления в список отображения контейнера
var buttonDrag:Sprite = createSquare(20, 20, 0xFF0000);
container.addChild(buttonDrag);

buttonDrag.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownDrag);
buttonDrag.x = square.width - buttonDrag.width;
buttonDrag.y = square.height - buttonDrag.height;

//функция перерисовывает окно с новыми размерами при перемещении кнопки
function updateSet(initWidth:int, initHeight:int, color:uint = 0x0000FF):void {
square.graphics.clear();
square.graphics.beginFill(color);
square.graphics.drawRect(0, 0, initWidth, initHeight);
square.graphics.endFill();

}

function mouseDownDrag(e:MouseEvent):void {
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveDrag);
}

function mouseMoveDrag(e:MouseEvent):void {
p = new Point(container.mouseX, container.mouseY);//обновление координат курсора
buttonDrag.x = Math.max(this.localToGlobal(p).x, 50)//перевод локальных координат container в глобальные, (Math.max) - высчитывает минимальное значение
buttonDrag.y = Math.max(this.localToGlobal(p).y, 70)//перевод локальных координат container в глобальные
updateSet(buttonDrag.x+buttonDrag.width, buttonDrag.y+buttonDrag.height);
e.updateAfterEvent();//обновление визуализации, если список отображения был изменен
}
//удаляет событие слижения за мышью и останавливает перетаскивания окна
function stageMouseUp(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveDrag);
container.stopDrag();

}
//перетаскивание окна
function containerDown(e:MouseEvent):void {
container.startDrag();
}
СС
Санат Смагулов
5 016
Лучший ответ
хттп: //флаш. демиарт. ру/
сам когда-то с этого начинал )