Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос на тему Random'a (http://www.flasher.ru/forum/showthread.php?t=78600)

chotkiy 20.04.2006 16:36

Вопрос на тему Random'a
 
Здраствуйте
я создал movie clip с кнопкой, бегающий от мышки принажатии на него, используя следущий скрипт:

on (press) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
this._x = random(365);
this._y = random(233);
}
}


Как сделать так, чтобы спустя какое-то время (несколько секунд) после перемещения, movie clip возвращался в первоначальные координаты?

RandomUser 20.04.2006 17:06

Пользуемся волшебной кнопкой F1
 
Не понял, зачем тебе здесь hitTest, если при нажатии на клип он всегда будет срабатывать...

Нажимаешь F1, а в строку поиска вводиш setInterval или clearInterval...

Sneg 20.04.2006 17:16

Код:

import mx.utils.Delegate;

var timeOutID:Number=null;
var oldButtonX:Number=null;
var oldButtonY:Number=null;
button.onPress=Delegate.create(this,onButtonPress);

function onButtonPress():Void{
        clearInterval(timeOutID);
        oldButtonX=button._x;
        oldButtonY=button._y;
      button._x=100*Math.random();
        button._y=100*Math.random();       
        timeOutID=setTimeout(returnToOldPlace,1000);
};

function returnToOldPlace():Void{
        button._x=oldButtonX;
        button._y=oldButtonY;
};

Примерный код. button - название твоего MovieClip'a

Psycho Tiger 20.04.2006 18:59

да тока лучше в returnToOldPlace() поставить clearInterval
а то када на 1 переменную повесят 15 интервалов... мне жалко ету переменную...

chotkiy 20.04.2006 19:01

var timeOutID:Number=0;
var oldButtonX:Number=0;
var oldButtonY:Number=0;
Я вбил вот этот скрипт, кнопка перемещается по рандому, но не возвращается на исходную позицию:

var timeOutID:Number=0;
var oldButtonX:Number=0;
var oldButtonY:Number=0;
button.onPress=this.onButtonPress;

function onButtonPress() {
clearInterval(timeOutID);
oldButtonX=button._x;
oldButtonY=button._y;
button._x=Math.random()*100;
button._y=Math.random()*100;
timeOutID=setTimeout(returnToOldPlace,10);
};

function returnToOldPlace() {
button._x=oldButtonX;
button._y=oldButtonY;
};

Psycho Tiger 21.04.2006 07:29

Канешно работать не будет!
Функции setTimeout в жизни у флэша небыло.
Был setInterval
Лови, пенчекряка (хто такой пенчекряка?)
Код:

var timeOutID:Number=0;
var oldButtonX:Number=0;
var oldButtonY:Number=0;

var timeOutID:Number=0;
var oldButtonX:Number=0;
var oldButtonY:Number=0;
button.onPress=this.onButtonPress;

function onButtonPress() {

oldButtonX=button._x;
oldButtonY=button._y;
button._x=Math.floor(Math.random()*500);
button._y=Math.floor(Math.random()*500);
timeOutID=setInterval(returnToOldPlace,500);
};

function returnToOldPlace() {
clearInterval(timeOutID);
button._x=oldButtonX;
button._y=oldButtonY;
};


Psycho Tiger 21.04.2006 07:42

Ух ты! Вдруг вычитал што setTimeout есть..
Извиняюсь за тот пост - помоему тады должно быть _global.setTimeout...
лана кароч не бери в голову. Пользуйся тем.

Sneg 21.04.2006 09:58

Использовать _global необходимо только во внешних .as файлах (классах), а _root работает без _global.


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

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