Просмотр полной версии : Отображать видимую часть клипа
Здрастье. Вот "небольшая проблемка". Есть огромная swf-карта, которую засунули в библиотеку клипа.
На клипе стоит scrollpane, в него-то и поместили карту. Когда zoom'лю карту(а надо до 32 раз), то при максимальном zoom'е карта жутко тормозит( полосы прокрутки двигаются рывками, чтобы отметить место на карте щелчком надо ждать 5-10 сек и тд ).
И вот мои вопросы:
1)Подскажите, пожалста, как не отрисовывать то, что выходит за пределы видимости scrollpane(может можно как-то программно порезать карту, запомнить куда-нибудь кусочки и выводить их по мере необходимости)
2)Иногда приходится программно рисовать маршрут, но при масштабировании он пропадает. Исправляется все refreshpane, но эта функция для такой большой карты выполняется где-то 20-30 сек. Есть ли альтернативный метод refreshpane
Скорей всего второй вопрос решится за счет первого, так что первый наверно будет поважнее.
Разбить на части и держать одновременно лишь несколько частей.
Так и как же это сделать. Были ли примеры по этой теме?
Очень просто. Совместить части и по мере движения цеплять другие.
Основной проблемой может стать указание через идентификатор, как расположены эти части карты. Но если вспомнить, как описываются препятствия в простых играх, то все становится ясно...
либо -- как вариант -- именовать квадраты как на картах. Типа Е48, М61 и т.п.
Так можно держать в игре очень большую карту.
Да, елки, я не совсем идею прошу, я её уже предложил, меня сама реализация интересует. И кстати это не игра, а серьезная прога. Карта - России детальная.
Так вот, как можно отрезать кусок и занести куда-нибудь в массив?Ну или если не в массив, то как из куска карты сделать мувик?
Серьезная это прога или нет -- тебе был рассказан вариант. Но ты же не идею просишь, тебе же _реализация_ интересна... :\
Я же сразу написал: "может можно как-то программно порезать карту, запомнить куда-нибудь кусочки и выводить их по мере необходимости". Мне зачем-то ответили тоже самое но другими словами. И это называется "рассказан вариант"!
И вопрос был другой: "Так вот, как можно отрезать кусок и занести куда-нибудь в массив?Ну или если не в массив, то как из куска карты сделать мувик?"
K.A.T.A.F.A.L.K.E.R
02.03.2006, 01:08
Так вот, как можно отрезать кусок и занести куда-нибудь в массив?
В фатажопе. Или такой вариант не катит?
варианты -
1)битмап в восьмерке режем скриптом
2)элементарно дублируем битмап и на каждый кусок ставим в нужном месте маску
В фатажопе. Или такой вариант не катит? Нет, совсем не катит, карта векторная должна быть, чтоб при максимальном масштабе все четко было. Ну короче требования такие. Да и вообще, её даже не отредактировать(т.е. вручную не порезать), т.к. там огромное кол-во элементов. Поэтому надо программно резать, вот я и спрашиваю как?
варианты -
1)битмап в восьмерке режем скриптом
2)элементарно дублируем битмап и на каждый кусок ставим в нужном месте маску
Это не битмап, это клип. Как порезать скриптом, каким скриптом, какими функциями
если не битмап - то вопрос как порезать скриптом отпадает сам по себе. если только клип конечно не перегнать скриптом в битмап.
обрати внимание на мой второй совет
Не, не вот тут я не понял. Что я должен сделать? Совет в том, что я вопрос уже отпал:) или что я должен перегнать клип в битмап, но мне это и не нужно
ты считать умеешь? второй - это пункт два, он же 2)
еще раз на словах: дублируй свой клип или что там у тебя и маскируй так чтоб был виден только нужный кусок каждого дубликата
Виноват, к ночи уже уже слова не разбираю. Что сделать понял , не понял как? Теперь не понял как маскировать
А с этим я скорее всего уже разбирусь. Всем спасибо.
Про класс BitmapData слышал?
Antares, уже выяснили, что нет
Я делал тестовый вариант карты города, тоже использовал скролл-панель. Вопрос, насколько большая карта? Почему при максимальном зуме больше всего тормозит? Я немного экспериментировал с возможностями скроллинга с большим числом графических объектов. Заметил следующую закономерность - наибольшие тормоза скроллинга наблюдаются при одновременном перемещении ВИДИМЫХ объктов (альфа=0 тоже считается) в окне плейера. Если то же самое количество объектов смещать за пределами флеш-плейера, то на скорость это практически не влияет. Наверняка, до какого-то предела - я до него не доходил (перемещал одновременно скроллингом до тысячи ПРОСТЫХ объектов). При увеличении масштаба отображения карты уменьшалось, соответственно, число одновременно находящихся в видимой части клипа объектов, скорость-плавность скроллинга возрастала. Почему у тебя наоборот?
Парни, похоже правы, не бит-мап не порезать программно. Но можно нарезать и не программно, я так понимаю - это единый клип?
Я делал тестовый вариант карты города, тоже использовал скролл-панель. Вопрос, насколько большая карта? Почему при максимальном зуме больше всего тормозит? Я немного экспериментировал с возможностями скроллинга с большим числом графических объектов. Заметил следующую закономерность - наибольшие тормоза скроллинга наблюдаются при одновременном перемещении ВИДИМЫХ объктов (альфа=0 тоже считается) в окне плейера. Если то же самое количество объектов смещать за пределами флеш-плейера, то на скорость это практически не влияет. Наверняка, до какого-то предела - я до него не доходил (перемещал одновременно скроллингом до тысячи ПРОСТЫХ объектов). При увеличении масштаба отображения карты уменьшалось, соответственно, число одновременно находящихся в видимой части клипа объектов, скорость-плавность скроллинга возрастала. Почему у тебя наоборот?
Парни, похоже правы, не бит-мап не порезать программно. Но можно нарезать и не программно, я так понимаю - это единый клип?
у этого есть очень простое объяснение:
больше всего тормозов приходится на отрисовку объектов на сцене. соответственно, что, чего не видим - не отрисовывается и не тормозит
у этого есть очень простое объяснение:
больше всего тормозов приходится на отрисовку объектов на сцене.
соответственно, что, чего не видим - не отрисовывается и не тормозит
именно это объяснение я и дал.
Резать на квадраты бесполезно. Только усложнит код.
Надо смотреть его графику - там по-видимому контуров нев..ное кол-во.
Не хочу по н-тому разу рассказывать. Пусть делает поиск по форуму. Уже обсуждалось. Не хочет - "ГоуТу раздел работа". Там я его встречу.:)
... Есть огромная swf-карта, которую засунули в библиотеку клипа.....Упорный парень. С Августа 2005 ( судя по топикам ) эту СкроллПанель и карты мучает. :)
Тебе за это время зарплату платили? или ты на общественных началах? :)
2 K.A.T.A.F.A.L.K.E.R
В фотошопе видимо не поканает, так как у человека клип swf резать надо.
2 Король
1) Это не битмап
2) У него 1 объект тормозит секунд на 30, а тут куча таких объектов да еще и с масками!
Надо резать этот клип, но только ручками во флэше, и загонять в либу кусочками... %(
у этого есть очень простое объяснение:
больше всего тормозов приходится на отрисовку объектов на сцене. соответственно, что, чего не видим - не отрисовывается и не тормозит
Допустим у человека карта 10000х10000 размером, а окно 1024х768. В любом случае отображаемая область не больше 1024х768, независимо от зума.
Тем не менее сообщается, что при зуме тормоза сильнее, значит дело не в отображаемой области...
"У него 1 объект тормозит секунд на 30, а тут куча таких объектов да еще и с масками!"
попробуй проведи простой эксперимент - сделай огромную карту и двигай ее - увидишь тормоза. потом положи карту под маску небольшого размера - тормоза исчезнут
2Король
Ничего подобного ... маска сути дела не меняет :)))
Что так что так тормоза будут если очень большой битмап.... и будь то маска размером 100на100 или 10на10 - от этого ничего не изменется
_root.attachMovie("maska", "maska", _root.getNextHighestDepth(), {_width:10, _height:10, _x:0, _y:0});
me.setMask("maska");
_global.FPS = 0;
function fp() { trace(_global.FPS); _global.FPS = 0;}
function mve() { me._x -= 1; me._y -= 1; _global.FPS++;}
id = setInterval(mve, 20);
id2 = setInterval(fp, 1000);
Сделай инстанс мувика с именем "me" c вложеным в него битмапом размером 4000 на 4000 пикселей и проверь ФПС... от изменеия размера маски ничего не поменяется
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.