Контроль над мышью
для реализации на цинке под WinXP пример выглядит примерно так
Код:
// задействуем обработчик события onAppExit чтобы при выходе "восстановить" скорость мыши.
mdm.Application.enableExitHandler();
// ставим "наугад" 10, т.к. считать и запомнить бывшее значение скорости в данном примере нельзя.
// но это можно сделать при помощи своей DLL и только так.
mdm.Application.onAppExit = function() {
SetSpeed(10);
myDLL.close();
mdm.Application.exit();
};
// здесь иллюстрируем позиционирование курсора
// x1 - х-координата формы +30
x1 = mdm.Forms.thisForm.x + 30;
// y1 - y-координата формы +30
y1 = mdm.Forms.thisForm.y + 30;
for (i = 0; i <= 15; i++) {
// в цикле "перемещаем" курсор
mdm.Input.Mouse.setPosition(x1 + i * i, y1 + i * i);
// делаем паузу между перемещениями курсора 200 мс
mdm.Application.delay(200);
}
// подключаем системную DLL c:\windows\system32\user32.dll, полный
// путь для файлов DLL в этой папке указывать необязательно
myDLL = new mdm.DLL("user32.dll");
// на сцене имеем мувик mc - простой прямоугольник, например.
// задаем обработчики onRollOver и onRollOut для этого клипа.
mc.onRollOver = function() {
SetSpeed(1);
};
mc.onRollOut = function() {
SetSpeed(10);
};
// функция, изменяющая скорость мыши, v - скорость от 1 до ... не проверял, 1 -самая маленькая.
function SetSpeed(v) {
// формируем список параметров вызова API-функции из user32.dll
// оригинальный вид ее таков
//BOOL SystemParametersInfo(
// UINT uiAction, // system parameter to query or set
// UINT uiParam, // depends on action to be taken
// PVOID pvParam, // depends on action to be taken
// UINT fWinIni // user profile update flag
//);буковка А в конце названия функции ниже в примере
//означает ANSI-версию функции (W - UNICODE версию соответственно)
// здесь я вызываю ее так
//SystemParametersInfoA (SPI_SETMOUSESPEED, 0, (PVOID)1, SPIF_SENDCHANGE);
// например 113 - численное значение API-константы SPI_SETMOUSESPEED
// и т.д.
myDLL.addParameter("integer", 113);
myDLL.addParameter("integer", 0);
myDLL.addParameter("integer", v);
myDLL.addParameter("integer", 2);
// собственно, вызов функции.
myDLL.call("boolean", "SystemParametersInfoA");
// очищаем список параметров для последующих вызовов.
myDLL.clear();
}
для более детального управления можно ипользовать свою DLL.
модераторам: в это тему можно складывать удачные примеры использования цинка.