Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ожидание выполнение слушателя (http://www.flasher.ru/forum/showthread.php?t=194956)

Guitariz 25.02.2013 18:12

Ожидание выполнение слушателя
 
Доброго дня, и снова нубский вопрос:
Нужно остановить выполнение функции и ожидать нажатие на мувик. Как реализовать? Перепробовал это:
Код AS3:

function Close(e:MouseEvent):void
    {end = true;}
var T:Timer = new Timer(2000,0);
while (end == false)
{
    t.start();
}

и это
Код AS3:

function Close(e:MouseEvent):void
    {end = true;}
while (end == false)
{
        setTimeout(trace,1000,i++);
}

Пока ничего не помогает :(

Hauts 25.02.2013 18:26

Разбить функцию, которая должна "останавливаться" на две. И не использовать while в такой ситуации.

Guitariz 25.02.2013 18:28

окау
 
Цитата:

Сообщение от Hauts (Сообщение 1122346)
Разбить функцию, которая должна "останавливаться" на две. И не использовать while в такой ситуации.

А потом?

Asfel 25.02.2013 18:31

Что то я вопроса совсем не понял. Остановить выполнение функции? return. Ожидать нажатия на кнопку? addEventListener

Hauts 25.02.2013 18:33

Цитата:

Нужно остановить выполнение функции и ожидать нажатие на мувик. Как реализовать?
Прерывание выполнения функции - return.

Ожидать нажатия на "мувик" - addEventListener(MouseEvent.CLICK, ...)

Опишите задачу конкретнее, догадываться что вы там пытаетесь сделать мало кто захочет.

Опередили :)

caseyryan 25.02.2013 18:46

В ас3 нельзя использовать цикл while для ожидания чего-либо. Вся программа зависнет в ожидании выполнения самого цикла, так как все работает в одном потоке, а после истечения времени выполнения просто отвалится.

Guitariz 25.02.2013 19:13

Функция должна
-Создать объекты на спрайте (решено)
-остановиться
- здесь пользователь двигает объекты (решено)
-продолжить выполнение после нажатия на один мувик (условно крестик). (мувик есть, но пока не работает)
- после этого она должна получить данные от объектов и передать их дальше (решено)

Hauts 25.02.2013 19:20

Цитата:

-продолжить выполнение после нажатия на один мувик (условно крестик). (мувик есть, но пока не работает)
Вот это сделайте отдельной функцией.

iflamberg 25.02.2013 19:25

Код AS3:

 
//функция создает объекты на карте
function create():void {
  //здесь все дейсвия по созданию, потом:
  btnClose.addEventListener (MouseEvent.CLICK, krestikClickHr); //слушаем нажатие на "крестик"
}
 
//функция выполнится, когда нажмут на крестик
function krestikClickHr (e:Event):void {
  btnClose.removeEventListener (MouseEvent.CLICK, krestikClickHr); //больше "крестик" не слушаем
  //выполняем какие-то действия
}

Не нужны вам никакие бесконечные циклы, не нужны вам какие-то таймеры.

Guitariz 25.02.2013 19:26

А как с помощью
Код AS3:

function Close(e:MouseEvent):void
                                {}

выходить из тела функции, в котором ф-ция Close описана?

Добавлено через 35 секунд
Цитата:

Сообщение от iflamberg (Сообщение 1122359)
Код AS3:

 
//функция создает объекты на карте
function create():void {
  //здесь все дейсвия по созданию, потом:
  btnClose.addEventListener (MouseEvent.CLICK, krestikClickHr); //слушаем нажатие на "крестик"
}
 
//функция выполнится, когда нажмут на крестик
function krestikClickHr (e:Event):void {
  btnClose.removeEventListener (MouseEvent.CLICK, krestikClickHr); //больше "крестик" не слушаем
  //выполняем какие-то действия
}

Не нужны вам никакие бесконечные циклы, не нужны вам какие-то таймеры.

грациос!!! и все равно кривовато, начинает действие одна функция, а завершает другая


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

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