Форум 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)
-   -   Флэш забивает на прорисовку мувиков с координатой > 4005 ? (http://www.flasher.ru/forum/showthread.php?t=112482)

sinya 29.05.2008 11:43

Флэш забивает на прорисовку мувиков с координатой > 4005 ?
 
Всем привет.
Столкнулся вот с чем: у меня есть мувик bgr, в нем еще два мува, а и b. для а написана онЕнтерФрейм-функция, увеличивающая его y-координату до того момента, пока а не ляжет своим центром на b. Проверяется этот момент хитТестом. Все работает, но когда я начинаю перемещать общий мув bgr по иксу, то при bgr._x > 4005 мув а начинает двигаться по игреку, как будто b под ним исчез. Вырезка из трейса (первое число - bgr._x, второе - bgr.a._y):
Код:

3999
-3.5
____________
4000
-3.5
____________
4001
-3.5
____________
4002
-3.5
____________
4003
-3.5
____________
4004
-3.5
____________
4005
-3.5
____________
4006
1.5
____________
4007
6.5
____________
4008
11.5
____________

Мой вопрос заключается в том, как можно этого избежать и верно ли мое предположение в теме поста? Спасибо.

iNils 29.05.2008 12:58

Исходник?

sinya 29.05.2008 13:38

Вложений: 1
Вот..

Alex_beginner 29.05.2008 14:24

Из Вашего исходника, понять, собственно ниче нельзя. Если можно изложите идею словесно и по-подробнее, т.е. что Вы хотите реализовать. Я думаю так будет проще, чем мы будем парсить мозгом ваш исходник.

Сразу же есть несколько советов.

1. Делайте по возможности все на основной временной шкале а не на шкалах вложенных мувов, т.е не bgr....onEnterFrame, а _root.onEnterFrame и в первом кадре (если нет прелоадера). Это способствует централизации кода, т.е. и Вам и другим флешерам легкче будет с ним разбираться.

Поясните пожалуйста зачем Вам 2 слой. Я не вижу там никаких трасформаций или действий?

sinya 29.05.2008 14:58

Исходник проще этого трудно себе представить.. Я не знаю как в нем можно что-то не понять. Этот файл иллюстрирует мою проблему. Если бы меня интересовало использование _root.onEnterFrame, я бы так и написал.

2. Не уничтожаю, т.к. он мне нужен. В реальной задаче мув b может менять координаты, и мув a при этом должен опускаться на него.

Alex_beginner 29.05.2008 15:10

На счет _root.onEnterFrame львиная доля всех динамических процессов может быть описана в onEnterFrame главной временной шкалы и нет необходимости делать его на клипах, кнопках и др. кадрах итд.

Давайте уточним.

1. Есть клип-контейнер - bgr;
2. В bgr есть два клипа bgrr и char;
3. Необходимо менять свойство char._y до момента совпадения координат его центра и края клипа bggr;
4. Остановка процесса;

Если что то не так или что-то я упустил попавьте меня, указав номер пункта и поправку.

chingachgoog 29.05.2008 15:36

Вложений: 1
Вот простой исходник.
Как видно дело в ограничениях третьего синтаксиса хиттеста.

Alex_beginner 29.05.2008 15:42

Вложений: 1
А вот так организовать процесс нельзя?

Код:

var centralPoint:Object = {x:0,y:0}; //для точки регистрации в центре клипа
this.onEnterFrame = function():Void
{
        this.bgr.char._y +=3;
        centralPoint.x=0;
        centralPoint.y=0;
        this.bgr.char.localToGlobal(centralPoint);
        if (this.bgr.bgrr.hitTest(centralPoint.x,centralPoint.y,true))
        {
                delete this.onEnterFrame;
                trace("столкновение");
        };
}

Видите ли hitTest принимает в качестве параметров координаты в координатной системе основной шкалы. А отследить все изменения координат от изменения координатных систем вложенных клипов может localToGlobal.

Alex_beginner 29.05.2008 15:49

Сhingachgoog! Большой змей! :)Скажи мне а че он вообще то хотел, если ты понял.

Вот еще что непонятно. Как можно достигнуть координаты 4005 если максимальные размеры холста -2880 px.

chingachgoog 29.05.2008 16:26

Цитата:

Сообщение от Alex_beginner (Сообщение 742449)
Скажи мне а че он вообще то хотел, если ты понял.

sinya нашел интересный глюк и высказал правдоподобное объяснение сего явления. Скорее всего он прав. Но точно могут сказать только разработчики метода хитТест (они знают, как он НА САМОМ ДЕЛЕ работает)

Цитата:

Сообщение от Alex_beginner (Сообщение 742449)
Вот еще что непонятно. Как можно достигнуть координаты 4005 если максимальные размеры холста -2880 px.

Холст может быть практически любых размеров. Это битмапа не может быть больше 2880.

add:
Цитата:

Сообщение от Alex_beginner (Сообщение 742449)
А вот так организовать процесс нельзя?

В этом нет смысла для поставленного вопроса. В моем примере шарик вообще не падает.


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

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