Форум 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)

Alex_beginner 29.05.2008 16:36

chingachgoog! Я не твой пример модифицировал, а его - посмотри его исходник.
Потом насчет размеров, программно задать 4005 ширину клипа можно, а вот с панели Properties нельзя.

Вопрос возникает зачем задавать такие размеры клипа? !

Кстати смотри вот какой еще глюк есть:

Код:

var centralPoint:Object = {x:0,y:0}; //для точки регистрации в центре клипа
this.onEnterFrame = function():Void
{
        this.bgr.char._y +=0.1;
        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("столкновение");
        };
        /*this.bgr._x+=2;
        _root._x-=2;
        trace(this.bgr._x);*/ закомментированный блок
       
}

Вот так все вроде бы нормально. Расскоментируешь закомментированный блок, как с первого взгляда ничего непроизошло - клип bgr остается на месте, но столкновения не просиходит, как будьто глобальная координатная система не привязана к _root.

iNils 29.05.2008 17:07

Цитата:

Сообщение от Alex_beginner (Сообщение 742454)
Потом насчет размеров, программно задать 4005 ширину клипа можно, а вот с панели Properties нельзя.

Не проверял в cs3, а в flash 8 можно сделать высоту и ширину размеров 5760 (2880 * 2). И это без учета того, что можно зайти потом в объект и изменить размеры внутри.

Alex_beginner 29.05.2008 17:13

В Properties? Если такое возможно через вкладку Properties (свойства документа) покажите как плиз!

chingachgoog 29.05.2008 17:17

Цитата:

Сообщение от Alex_beginner (Сообщение 742454)
chingachgoog! Я не твой пример модифицировал, а его - посмотри его исходник.

Я это понял. Собственно потому свой исходник и выложил, что он более простой. Его еще, кстати можно упростить. Совсем убить кругляшок и заменить код на:

Код:

bgr.onEnterFrame = function () {
        if (!bgr.bgrr.hitTest(this._x + 16, this._y +16, true)) {
                trace("hitTest2(true)")
                }
        if (!bgr.bgrr.hitTest(this._x + 16, this._y + 16, false)) {
                trace("hitTest2(false)")
                }
        if (!bgr.bgrr.hitTest(this)) {
                trace("hitTest1")
                }
        this._x+=10;       
        trace (this._x);
}

Цитата:

Сообщение от Alex_beginner (Сообщение 742454)
Потом насчет размеров, программно задать 4005 ширину клипа можно, а вот с панели Properties нельзя.

Вопрос возникает зачем задавать такие размеры клипа? !

Почему нельзя? Я вот только что сделал за 3300...

Alex_beginner 29.05.2008 17:22

Я тоже пробовал. Пишет, что задавайте значения от 1 до 2880

Кстати на счет твоего примера. Я так понял ты продемонстрировал возможности метода hitTest в разных транскрипциях?
И потом весить onEnterFrame на клипы кроме главной временной шкалы - плохая практика.

iNils 29.05.2008 17:55

Цитата:

Сообщение от Alex_beginner (Сообщение 742470)
В Properties? Если такое возможно через вкладку Properties (свойства документа) покажите как плиз!

Вы размерах клипа говорили:
Цитата:

размеров, программно задать 4005 ширину клипа можно
А теперь о документе?

И для документа, это лишь ограничения flash ide.
А вот согласно формату swf, размер можно задать 53'687'091 пикселей.
Там Rect структура, по 5 битов на число задающие число битов для Xmax и Ymax (Xmin и Ymin для размеров сцена всегда 0). 5 битов позволяют использовать 31 бита для размера, один бит уходит на знак и остается 30 битов.
А это 1'073'741'823 твипсов, делим на 20 и получаем 53'687'091 пикселей.

Цитата:

Сообщение от Alex_beginner (Сообщение 742475)
И потом весить onEnterFrame на клипы кроме главной временной шкалы - плохая практика.

Да? Во времена до AS2, "классы" расширяющие MovieClip писались в клипах.

Alex_beginner 29.05.2008 18:05

Есть концепция централизации кода! Вы вероятно о ней слышали. Но никто и не говорит, что нельзя писать код в клипах. Считается, что лучше писать код в одном месте для улучшения читабильности (централизация) кода, лучше это делать, на мой взгляд, на _root.

А на счет документа мы видимо друг друга непоняли. Ведь Sanyia не создавал клипы программно, он их создавал на стадии конструирования.
Так вот я говорил о Stage. Поскольку в Properties задается размеры документа.

iNils 29.05.2008 18:26

Код:

Есть концепция централизации кода! Вы вероятно о ней слышали.
Ну есть и что? Я могу привести множество примеров, когда эта концепция не жизнеспособна.

Цитата:

А на счет документа мы видимо друг друга непоняли. Ведь Sanyia не создавал клипы программно, он их создавал на стадии конструирования.
Так вот я говорил о Stage. Поскольку в Properties задается размеры документа.
Я до сих пор вас не понимаю. Какая связь между Stage и тем, что Sanyia создавал клипы руками?

chingachgoog 29.05.2008 18:28

Цитата:

Сообщение от Alex_beginner (Сообщение 742475)
Я тоже пробовал. Пишет, что задавайте значения от 1 до 2880

Это просто. Перемещаете мувик вручную до упора вправо - границы стейджа расширились. Перемещаете еще раз - опять расширились. И т.д.
В панели свойств появляются соответствующие значения.

Цитата:

Сообщение от Alex_beginner (Сообщение 742475)
Кстати на счет твоего примера. Я так понял ты продемонстрировал возможности метода hitTest в разных транскрипциях?

Это разный ПРИНЦИП действия хитТеста. И что характерно - глюк только в том варианте, где должны высчитываться контуры фигуры (т.е. практически прорисовываться). Если подождете во время выполнения кода, то все поймете.

Цитата:

Сообщение от Alex_beginner (Сообщение 742475)
И потом весить onEnterFrame на клипы кроме главной временной шкалы - плохая практика.

Не понял о чем это? Код написан на главной временной диаграмме, в первом кадре на отдельном верхнем слое.

Alex_beginner 29.05.2008 19:09

iNils! Поясню что я имел ввиду.

1. 4000 px это за пределами стэйж. Зачем ему понадобилось двигать клип за пределы стэйж, так далеко?!
2. Концепция не может быть не жизнеспособной или жизнеспособной. Этот термин не подходит. Концепция, она либо есть либо ее нет. Поскольку, лично для меня и, я думаю, для других тоже, было бы очень удобно, наблюдать написанный код в одном месте такая концепция есть. Но, другое дело, что ее не всегда можно воплотить в жизнь. Тут я с Вами бы согласился.

chingachgoog! А почему бы Вам не писать код на события главной временной шкалы (я имею ввиду только onEnterFrame), коль написано на главной временной шкале, да еще и в первом кадре:) И я показал пример как с тем же успехом вызывается обработчик _root.onEnterFrame.


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

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