Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   mdm.Application.exit() вешает Projector намертво (http://www.flasher.ru/forum/showthread.php?t=119061)

SuperMaximus 11.12.2008 11:15

mdm.Application.exit() вешает Projector намертво
 
Вот такой САБЖ...
Zinc 3.0.3

Т.к. цинк не понимает fscommand'ы ищу варианты обхода метода закрытия прожектора mdm.Application.exit().
Уже рассматривал посылание приложению keypress'а клавиши ESC (в цинке скомпилировал проект с закрытием с помощью ESC, но обязательно должна быть и кнопка), но не знаю как это сделать.
Помогите, пожалуйста!

alexcon314 11.12.2008 11:54

Можно попробовать слать окну WM_QUIT.Опробовано на 2.5.0.34.
Код:

mdm.Application.doEvents();
//установим титл на форму, по которому будем искать окно
formTitle = mdm.Forms.MainForm.title = "form";
appTitle = mdm.Application.title = "app";
// получаем хэндл окна
var wList = mdm.System.getWindowList();
var i = 0;
while (wList[i][1]) {
        if (wList[i][0] == formTitle || wList[i][0] == appTitle) {
                hwnd = wList[i][1];
        }
        i++;
}
exit_btn.onRelease = function() {
        mdm.System.postMessage(hwnd, 18, 0, 0);
        };


SuperMaximus 11.12.2008 12:19

Тайтл и апптайтл можно также оставить как в вашем коде, либо нужно его как-то привязывать во флеше к своей форме?

Добавлено через 36 минут
Где этот код прописывать? В 1-м фрейме, а mdm.System.postMessage(hwnd, 18, 0, 0); в он-клик событии баттона можно оставить?

Код:

on (release) {
mdm.System.postMessage(hwnd, 18, 0, 0);
}

Добавлено через 52 минуты
alexcon314 - виснет проект также как и в случае exit(); :(

iNils 11.12.2008 13:59

SuperMaximus, для оформления своего кода, надо использовать теги [code][/code].

alexcon314 11.12.2008 14:22

Код:

mdm.System.postMessage(hwnd, 2, 0, 0);
А так?

SuperMaximus 11.12.2008 16:15

alexcon314 - это все надо вписывать в Onclick кнопки?
Не надо больше ничего стороннего делать вроде называния кнопки и т.д.?

Добавлено через 14 минут
Ибо пишет в результате исполнения кода
ERROR: couldn't locate runtime module: mdm.System
и mdm.Forms

alexcon314 11.12.2008 17:35

Вы галочки поставьте при сборке проекта напротив нужныx экстенженов (вкладка Extensions)
Код:

on (release) {
mdm.Application.doEvents();
//установим титл на форму, по которому будем искать окно
formTitle = mdm.Forms.MainForm.title = "form";
appTitle = mdm.Application.title = "app";
// получаем хэндл окна
var wList = mdm.System.getWindowList();
var i = 0;
while (wList[i][1]) {
        if (wList[i][0] == formTitle || wList[i][0] == appTitle) {
                hwnd = wList[i][1];
        }
        i++;
}
        mdm.System.postMessage(hwnd, 2, 0, 0);
//mdm.System.postMessage(hwnd, 18, 0, 0);
}

если уж на кнопке писать, то как-то так.

SuperMaximus 11.12.2008 19:30

alexcon314

Не знаю как у Вас, но в Цинке 3.0.3, а также в триальной 3.0.14 (последней) ну ни в какую не получается реализовать нужное.
Пишет уже при запуске компилированного прожектора, что не понимает что такое mdm.Forms и mdm.Application (кстати, в списке экстеншинов только From есть).

alexcon314 11.12.2008 22:39

Да что ж такое-то...
В цинк-IDE жмем Project->Build Project. Появится окно "Build Project" со списком подключаемых расширений.
http://mdm-zinc.narod.ru/bp.jpg
В нем ставим нужные галки.


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

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