Другие языки программирования и технологии
как на 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();
}
Вполне грамотная реализация того, что вам надо. Если хотите научиться писать, разберите этот пример от и до, в комментариях, что к чему, я все описал.
здесь можете посмотреть онлайн версию (код и результат) , но она реализована в классе:
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();
}
хттп: //флаш. демиарт. ру/
сам когда-то с этого начинал )
сам когда-то с этого начинал )
Похожие вопросы
- JS-программеры! подскажите пожалуйста код для перемещения объекта курсором мыши.
- Подкиньте идею Как определить направление от Некой точки на экране до курсора мыши
- Как в Паскале можно описать курсор мыши? Именно вывести его на экран и определить его положение при выполнении программы
- Как в visual basic сделать запуск алгоритма щелчком прав. кнопки мыши? Как связать 2 формы и вывести их на экран вместе?
- при поднятии мышки x7 XL-750BK над поверхностью начинает летать курсор куда угодно!!!!1111 что делать??
- А насколько сильно отличаются ActionScript 2.0 и ActionScript 3.0??
- ActionScript 3 и Mysql
- Adobe Flash умер в конце 2020. Вопрос: язык программирования ActionScript также устарел, его бесполезно начинать учить?
- Ситуация такая: В фотошопе сделал очень сложное выделение
- t-sql (курсоры и циклы - взаимозаменяемы?)