Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 24.11.2010, 21:54
al0ne вне форума Посмотреть профиль Отправить личное сообщение для al0ne Найти все сообщения от al0ne
  № 1  
al0ne

Регистрация: Nov 2010
Сообщений: 12
Question Граница экрана.

Доброго времени. Вообщем-то проблема такая. Есть объект, который перемещается по экрану. Нужно сделать так, чтобы он не вылазил за границы.
Проблема в том,что я не знаком с ас2, взялся помочь на свою голову.
Код AS1/AS2:
stop ();
_global.movingLegs = new Array("l2", "l3", "l4", "l5", "r2", "r3", "r4");
_global.freeLegs = new Array(_root.crab_mc.l1, _root.crab_mc.l1.arm, _root.crab_mc.r1, _root.crab_mc.r1.arm);
var cSize = 80;
_root.createEmptyMovieClip("tracks_mc", 1);
crab_mc.swapDepths(tracks_mc);
var cTrackNum = 1;
crab_mc._x = cSize + MathPlus.rnd(Stage.width * 7.500000E-001);
crab_mc._y = cSize + MathPlus.rnd(Stage.height * 7.500000E-001);
crab_mc._rotation = MathPlus.rnd(180);
var duration;
var frameOffset = 0;
var crab_xTo;
var crab_yTo;
var crab_alpha;
var crab_isAnimated = false;
_root.onEnterFrame = function ()
{
 
    if (frameOffset <= 0)
    {
        frameOffset = MathPlus.rnd(30, 200);
        crab_xTo = cSize + MathPlus.rnd(Stage.width - cSize / 2);
        crab_yTo = cSize + MathPlus.rnd(Stage.height - cSize / 2);
        crab_alpha = 5.729578E+001 * Math.atan2(crab_yTo - crab_mc._y, crab_xTo - crab_mc._x);
        if (crab_alpha > 90)
        {
            crab_alpha = -180 + crab_alpha;
        }
        else if (crab_alpha < -90)
        {
            crab_alpha = 180 + crab_alpha;
        } // end else if
        var _loc11 = Math.sqrt(Math.pow(crab_xTo - crab_mc._x, 2) + Math.pow(crab_yTo - crab_mc._y, 2));
        if (_loc11 <= crab_mc._width)
        {
            duration = Math.round(Math.abs((crab_alpha - crab_mc._rotation) * 8.000000E-001));
        }
        else
        {
            duration = MathPlus.rnd3(4.000000E-001 * _loc11, 6.000000E-001 * _loc11);
        } // end else if
        crab_mc.slide({_x: crab_xTo, _y: crab_yTo, _rotation: crab_alpha}, "easeIn", duration);
        frameOffset = frameOffset + duration;
    }
    else
    {
        --frameOffset;
    } // end else if
    if (duration > 0)
    {
        --duration;
        for (iL in movingLegs)
        {
            if (movingLegs[iL].length == undefined)
            {
                continue;
            } // end if
            var _loc3 = crab_mc[movingLegs[iL]];
            if (_loc3.onEnterFrame == undefined)
            {
                if (_loc3.dir == "down" || _loc3.dir == undefined)
                {
                    _loc3.dir = "up";
                    var _loc4 = {x: 0, y: 0};
                    _loc3.c.localToGlobal(_loc4);
                    _root.tracks_mc.attachMovie("track_anim", "track_" + cTrackNum, cTrackNum, {_x: _loc4.x, _y: _loc4.y, _alpha: MathPlus.rnd(20, 75)});
                    if (++cTrackNum > 1000)
                    {
                        cTrackNum = 1;
                    } // end if
                    _loc3.pauseExec(16 * MathPlus.rnd(1, 3), function ()
                    {
                        this.slide({_rotation: MathPlus.rnd(15, 25)}, "easeOut", MathPlus.rnd(5, 6));
                    });
                    continue;
                } // end if
                _loc3.dir = "down";
                _loc3.pauseExec(16 * MathPlus.rnd(1, 3), function ()
                {
                    this.slide({_rotation: MathPlus.rnd(-1, 1)}, "easeOut", MathPlus.rnd(5, 6));
                });
            } // end if
        } // end of for...in
    }
    else
    {
        for (iL in freeLegs)
        {
            _loc3 = freeLegs[iL];
            trace (_loc3._name);
            if (_loc3.onEnterFrame == undefined)
            {
                _loc3.pauseExec(16 * MathPlus.rnd(1, 3), function ()
                {
                    this.slide({_rotation: MathPlus.rnd(-10, 10)}, "easeOut", MathPlus.rnd(5, 10));
                });
            } // end if
        } // end of for...in
    } // end else if
 
 
}

Старый 24.11.2010, 22:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Обсуждение кода полученного в результате декомпиляции запрещено.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 19:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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