PDA

Просмотр полной версии : скролл


spartan
11.10.2004, 10:42
Такие вот дела.
Понадобилось мне вдруг изменить разрешение флэшки...
Короче : у меня есть флэшка разрешением 1024х768 ,
в IE она отображается нормально, без скролинга...
но вдруг она увеличивается по вертикали (допустим часть флэшки уезжает вниз) , теоретически разрешение флэшки меняется то-есть она теперь не 1024х768 , а допустим 1024х4000.....
Внимание вопрос ! :
1)как вычислить каковы в данный момент габариты флэшки (не те которые мы задаем в панели properties, а те , которые реальные, со всеми выступающими мувиклипами)
2)как передать эти значения в html и динамически изменять параметры флэшки в нем (width, height),
если вообще конечно можно изменять параметры в html'е динамически.

Всем заранее огромное спасибо !!!

spartan
11.10.2004, 14:33
Пораскинул мозгами и понял что лучше всего это будет реализовать на DHTML , только как ?
Может подскажите мне, немощному ?
Люди-и-и-и-и не оставляёте меня одного-о-о-о-о , с моими проблемами-и-и-и-и-и-и . .
Выручайтя-я-я-я-я.
пожалуйста-а-а-а-а-а.

spartan
13.10.2004, 10:41
Ну ладно , перефразируем вопрос по-другому :

у меня огромное количество мувиклипов (около 800), они выстроены по вертикали, то есть получается огромный столбец из стоящих друг за другом мувиков , так вот , все эти мувики надо видеть , а так как они уходят вниз за пределы экрана то я, как и любой нормальный человек, сделал флэшовый скролл..

Тут то и начались чудеса :

1. Я выяснил что при большом размере скроллившегося объекта бегунок скролла начинает неимоверно архиглючить.
(с этим можно справится)

2. Скрол архитормозил из-за количества мувиклипов (хотя в кождом мувиклипе была только одна маленькая картинка)

3.Виндовский скрол, который находится справа в окошке IE, вообще не тормозил (т.к. он прокручивает всю флэшку)

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

Конечно может кто-нибудь знает , как сделать скролл на флэше , не тормозящий при больших объёмах, (в чём я лично сомневаюсь)...

Я надеюсь что написав сий немаленький пост, выпрошу у вас хоть какой-нибудь подсказки...

spartan
13.10.2004, 19:20
Только не молчите.
Пожалуйста !
Хоть кто-нибудь сталкивался с подобной проблемой ????

Nox Noctis, взываю, на тебя последняя надежда...

Ромастый
13.10.2004, 21:58
Пусть Nox меня поправит, если что, но кажется за размер окна флэш-плеера отвечает объект Stage. У него есь такая штука, как Stage.width, Stage.height, а также Stage.onResize, реагирующий на изменеие размеров окна. Только вот беда - width и height только возвращают значения, принимать не могут. Поэтому может стоит как-то изменять расположение клипов во флэшке...

Iv
13.10.2004, 22:40
а ты не держи все 800
проверяй, если ушел за пределы видимости, сноси.
и наоборот: лезет в кадр - подставляй.

Nox Noctis
14.10.2004, 12:33
хватит поминать нокса всуе :))

насчет флэшового скролла - можно скроллить рут.
сдвигаем рут в одну сторону, скроллбар в другую. чтобы он оставался на месте... но думаю это тормозить тоже будет.

потом можно в хтмл поставить флэшке размеры в процентах, а саму флэшку положить в див или в таблицу. и пусть оно скроллится средствами броузера.

можно в конце концов сделать фреймовую систему, и положить флэшку в отдельный фрейм, который будет скроллится броузером. (щас кто-нить завопит что фреймы отстой :) )

spartan
14.10.2004, 13:40
как же я рад, что люди наконец обратили на меня внимание ! ! !

потом можно в хтмл поставить флэшке размеры в процентах, а саму флэшку положить в див или в таблицу. и пусть оно скроллится средствами броузера.

Вау, вот енто-то мне и надо !
Но Nox, размер моей флэшки изменяется динамически, будет ли это действовать при таких условиях.
Расскажи, пожалуйста, как всё это чудо сделать ???

spartan
14.10.2004, 19:17
А вот параллельный вопрос :
почему, допустим, огромный текст в HTML-e не тормозит, а такой-же по размерам текст во флэше = тормозуха (при больших объёмах текста, она просто неимоверна).
Можно ли как-то оптимайзить этот текст, например все шрифты во флэше-векторные, а если сделать их растровыми (если это вообще возможно) ???

spartan
15.10.2004, 09:11
странный топик, нэкому нэ нюжьный савсэм , да ?
Вах ! , илэ нэ итэрэсный, ну тогда хоть скажитэ что нэ знаэтэ отвэта на вопрос, да ?
А то я волнуюсь, жду что придёт новий пост , а там всё пусто и пусто , да ?
Только нэ молчитэ , как братъэв вас прошу...

spartan
15.10.2004, 09:35
а ты не держи все 800
проверяй, если ушел за пределы видимости, сноси.
и наоборот: лезет в кадр - подставляй.

а я, слепой, представляете, ходил овкруг этого поста и не видел его !
Так это же реальное решение проблемы !
Сейчас пытаюсь реализовать таким образом, но мало что из этого получается, может есть у кого-то похожый по теме исходничок, или хотя бы принцип работы.
А то не понятно каким образом это быдет действовать, и что в это время будет происходить с "бегунком", а что если человек щёдкнет на полосу прокрутки и моментально окажется на пустом листе, получается, что на его глазах произойдёт "зарождение" мувиклипов и они ниоткуда нагрянут на неподготовленного пользователя????????????
ОГРОМНОЕ КОЛИЧЕСТВО ВОПРОСОВ, НО ТАК МАЛО ОТВЕТОВ....
Я НЕНАСЫТЕН ! ! !

spartan
15.10.2004, 13:38
Парилово ! ! !
Сижу с 7-ми часов за флэшем и ничего лучше этого не сделал.
Выкладываю исходник с примитивными набросками.

Краткое описание работы моей версии :

1) Есть скролл.
2) Есть объект для скролла (который этот скроллинг в последствии будет прокручивать), в этом объекте я создаю мувиклипы, выстраивая их в столбик друг за другом.
3) Есть предпологаемая видимая область скролла , которая впоследствии будет маской и будет показывать нам определённую картину.

Как всё это работает:

При прокручивании текста скрипт отслеживает,( с помощью hitTest'a ) насколько близко, к краю видимой области скролла, подошел последний мувиклип и если он на нужном нам расстоянии то трейсим об этом

Как это должно работать (также по-моему):


При прокручивании текста скрипт отслеживает,( с помощью hitTest'a ) насколько близко, к краю видимой области скролла, подошел последний мувиклип и если он на нужном нам расстоянии то верхний мы убиваем, а к нижнему
"дорисовываем" рядышком ещё один и задаём ему нужное нам имя.


проблемы у меня возникают из-за того что в данный момент я не могу определьть, какой мувик самый высокий (по _y) , а какой-самый низкий (по _y) чтоб прицепить к нему hitTest.

Короче завалы во всём .
Что посоветуйте ? ? ?
(хоть бы кто-нибудь ответил....)

spartan
15.10.2004, 13:40
вот он,из исходник каменного века :

Iv
15.10.2004, 14:52
ммда...
вопрос на самом деле не простой и требующий индивидуального подхода.

хм... пытался писать что делать.. но недостаточно инфы.
ты в исходнике просто накидываешь мувики, а в реальном проекте ты будешь строить из каких-то данных. от этого много зависит.

давай сделаем так:
я тебе дам исходник, как я делал менюху хелпа. ты глянешь, посмотришь на общие принципы и может что-то родишь.

чтобы менюху эту запустить, папку menu нужно положить в папку: C:\Documents and Settings\ЗДЕСЬ ИМЯ ЮЗЕРА\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\HelpPanel

spartan
15.10.2004, 16:23
BitSky, благодарю, но по ходу менюшка писалась под шестой флэш, а у меня-седьмой.... , наверно директории разные, ничего не пашет.
Хотя штука очень даже интересная

ты в исходнике просто накидываешь мувики, а в реальном проекте ты будешь строить из каких-то данных. от этого много зависит.

как раз таки нет, в реальном проекте мне надо будет накидывать их, и уже внутри них задавать данные, так что все мувики - по образу и подобию одного мува.
Так что система которуя я предложил , по-моему, единственная, мне подходящяя...
Я сейчас до сих пор пытаюсь что-то придумать, но количество опыта даёт о себе знать (уже сейчас ?, а что же будет когда начнутся реально сложные дела ??? :) )
Но не будем говорить, о плохом :

BitSky у меня к тебе отличная новость :
если ты поможешь мне в этой нелёгкой трабле, то навеки прославишься как победитель истинного зла, ибо оно само снизошло к нам и дало тебе знак... (его смотри во вкладке :) )

Iv
15.10.2004, 16:30
да я любым ответом истинное зло победю.
например этим %)

Iv
15.10.2004, 16:32
и уже внутри них задавать данные- как ?

spartan
15.10.2004, 17:00
как , как ?
делаю, руками, мувик в который кладу, допустим текстовое поле, ну или другой мув, а потом основному задаю кодом свойство :
1) для текстового поля:
основной_мувик.имя_текстового_поля.text="yo!!!";
Ну и так далее...

Это я привел пример как будет работать (мне хочется в это верить) моя система, то есть по мимо продвинутого скролла, мне каждый из 800 мувиклипов надо будет назвать оригинальным именем, а потом, обращяясь через это имя к вложенным в них объектам, менять то что мне надо :
и уже внутри них задавать данные

...Мы рыцари джедаи, мы борцы со злом.... :)

Iv
15.10.2004, 17:26
источник данных интересует.
ты же не собираешься всё прописывать внутри флэша.
так вот откуда браться будут?
xml или что то еще?

spartan
15.10.2004, 18:10
mySQL через php

spartan
15.10.2004, 18:14
Ну...
Чё у нас с BitSky'ем так ибудет приватная тема ,или может кто-нибудь подключится ?
А то снова началось молчание...
Игры в молчанки меня не вставляют.
(сейчас какой-нибудь чел скажет о том что никто не обязан мне помогать... :) )

spartan
15.10.2004, 18:17
Ужасное настроение, - весь день безрезультатно промучатся с одним advanced-скроллом, это надо быть героем (или ламарём :) ).
Первый мой пост на сегодня - около 8:30, уже голова кружится....

spartan
15.10.2004, 18:20
BitSky, дело не в данных, дело в том, как сделать-таки этот
скролл.

D12
16.10.2004, 00:35
вообщето я кроме игр и чепухи ничего во флеше делать неумею и посему от меня толку мало , но вот небольшой тебе скрол из игры ))) может идейка пригодится)))

spartan
16.10.2004, 09:45
D12, спасибо, щас посижу - поразбираюсь.
Вроде похоже на рульную штуку...

spartan
16.10.2004, 09:53
хммм,
прикольно !

spartan
16.10.2004, 09:56
Жалко, только к моему скролллу это никак не приаттачить.

spartan
16.10.2004, 10:18
Слухайте, у меня есть мувиклип с определённым именем,которое я знаю,можно ли что-нибудь дописать к его имени,или вообще заменить его имя на новое.

Я попробовал сделать через _name:

mc_имя._name=mc_имя2.

Но ничего не выходит.

spartan
16.10.2004, 12:57
c _name я разобрался.

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

Ну в крайнем случае скажите, что это невозможно реализовать, чтоб я больше не мучился...

spartan
17.10.2004, 10:36
Только это мне удалось сделать за последние три дня...
Исходник недоделанный, скролл глючит при быстром движении, да и просто глючит.
Может, посоветуете сделать в корне другую систему ?
Может, она вообще такая глючная что не стоит её использовать???
Короче, посмотрите, пожалуйста, и скажите, что думаете??

spartan
17.10.2004, 16:04
Вот, более новый, научился каждому мивиклипу вкладывать оригинальную начинку, прокручивать без глюков, правда всё ещё с маленькой скоростью, и в одну сторону, пытаюсь сделать чтобы при нажатии на линию скролла он не глючил...
Ну как???

spartan
17.10.2004, 16:06
Вот :

spartan
17.10.2004, 16:08
:)

spartan
18.10.2004, 14:08
Нет уж нет, я своего добъюсь.
Хоть один человек, в силах помочь мне, найдётся.

spartan
19.10.2004, 11:07
Вот родил третью версию....., теперь можно скроллить в обе стороны, он не решена проблема с глюком, при быстром прокручивании, так что прокручивайте медленно.

Вряд ли мне вообще кто-нибудь поможет, но если решите, то попробуйте пожалуйста убрать глюк при высокой скорости прокрутки...( сам как ни пытался-ничего не получается :^( )

spartan
20.10.2004, 08:09
Вот вопрос, по-моему очень лёгкий :
у меня есть объект scrollPane (стадартный макромедийный скролл, назовём его "скрол "), который подгружает в себя мувиклип ("мс "), и скроллит его, но так как "мс " оказывается как бы внутри scrollPane'на то к нему фиг обратишься...
Каким же всё-таки образом можно обратиться к объекту, лежащему в стандартном скроллинге???

Я делал так: задавал имя объекту scrollPane, имя мувику в linkage и пытался до него достучаться :

имя_объекта_scrollPane.имя_мувика.play();

Но команды ло мува не доходят, что делать ?
Ну на такой вопрос, мне кажется стыдно не ответить...

spartan
20.10.2004, 13:05
Я предлагаю присудить этой

spartan
20.10.2004, 13:10
Я предлагаю присудить этой теме медаль "Самая популярная"
.... наверное такое количество постов от одного человека в одной теме ещё не было, за что же все повернулись ко мне задом , даже спамеры ?
Люди ну хоть посмотрите исходник, который я выложил, к нему же никто не обращался.

За что?

Iv
20.10.2004, 13:35
спрашивал:
откуда данные берешь?
отвечаешь
mySQL+PHP

да пофигу что там на серваке.
в каком формате отдаешь? XML или как то еще?

просто времени нет разбираться в исходниках.

задавай конкретные, самодостаточные вопросы, будут тебе ответы.
народ то не бездельничает. рубит зелень не по детски...

spartan
20.10.2004, 15:32
BitSky, рад тебя видеть, хоть один гость зашёл ко мне на вечеринку !

Насчёт данных - не важно куда я их отсылаю, на скролл это никак не влият.

У меня к тебе, и ко всем зашедшим есть один лёгенький вопрос, также по поводу скролла , но он совсем лёгкий :
У меня есть скроллинг (не стандартный scrolllPane, а кустарного производства), он прокручивает опредеелённый мувик в который я могу пихать всё что угодно, и скрол будет это прокручивать ( хоть текст, хоть картинки)...Мне надо сделать так чтобы в прокручиваемом мувиклипе был ещё один мувик , который бы при прокручивании скроллилсся вместе с остальной "начинкой" , но потом бы выезжал из-за края видимой области и занимал своё мосто на экране.

Короче говоря желательно иметь мувик, который находясь в прокручиваемом мувиклипе не скроллился.

Для наглядности выкладываю swf-ку примерного действия этой простенькой системы (сам как ни пытался-ничего придумать, кроме этого, не смог)...
Всем заранее огромное спасибо.
Только чур снова не молчать!

Iv
20.10.2004, 16:17
так положи его вне скролла
в чем трабла то?

spartan
20.10.2004, 16:42
Блин, вот в этом то и трабла.....
НИ В КОЕМ СЛУЧАЕ нельза размещать его вне скрола !
Он должен размещатся только в скролле.
Такова моя система.
Вот я сижу и думаю, как же это сделать ?

Iv
20.10.2004, 17:53
даже в этом случае не понимаю,
что в этом сложного?

_y мувика равен минус _y мувика, его содержащего + отступ по высоте.

spartan
21.10.2004, 07:28
Вот видишь, я же говорил, что вопрос простецкий (для тебя), я же часто запарываюсь и на таких вещах, пытаясь придумать велосипед, делаю всё через жо.., а как всё на самом деле просто....
От всей души благодарен тебе !

spartan
21.10.2004, 19:22
Вот ещё один из моих нескончяемых(всмысле они не кончаются :) ) вопросов:
можно ли прицепить к скроллу прокрутку колёсиком ?
У меня есть подобный пример, но он работает только на текстовом поле, а мне бы на мувиклип...
Подскажите плиззз

Iv
21.10.2004, 19:44
Обращений к файлу 8 раз(а).
и ни одного твоего.

та менюха, что я тебе выложил в этом топике, имеет скролл, который поддерживает всё, что только может поддерживать.

обработка клавы с контролем позиции выделенного элемента, обработка колесика мыши, даже достраивание xml внешними данными, да еще к тому же с прелодером офигенно модным.

тебе урыться в этом меню на месяц не помешает.
найдешь ответы на все вопросы.

spartan
22.10.2004, 08:42
Да я уж ответы почти на всё нашёл, так что спасибо за менюху, но она , как я вижу немного не по моей теме, а то что среди скачявших твою менюху нет меня - я её скачал, войдя на форум незарегенным...
Блин, тем более она вообще под мою флэшу не работает - распологал её в ту директорию, в которую ты говорил, но она не может найти help-файло, мне кажется она делалась под Flash 6.

BitSky, разъясни пожалуйста по-поводу скролла, а то я в чужих исходниках не особо парю (я честно сижу, и пытаюсь разобраться)...
Как я понял, скролл надо цеплять к мувиклипу "menu_mc" , то есть сначала созжаём этот мувиклип, а потом скролл сам вытягивается до нужного нам размера ?
Я копировал скроллинг из твоего файла в новый, создал в руте мувиклип "menu_mc" , но при компиляции скролл исчезает...,
каким же образом прицепить скролл к мувику ?

Заранее СПАСИБО !

Iv
22.10.2004, 13:28
надо сидеть и разбираться.
мимо этого не пройти.

spartan
22.10.2004, 14:08
Усё.
Парился, пытаясь разобраться в твоём исходнике, около двух часов, потом включил мозги (они были отключены?) и сделал всё сам, по-новой.
Но всё равно спасибо !

spartan
23.10.2004, 20:02
Оказывается, просто эти операторы не хотели работать в AS 1.0? стоило лишь изменить настройки в "publish settings" на AS 2.0и всё мигом запахало !

var lift_mc:Object = new Object();
Mouse.addListener(lift_mc);
lift_mc.onMouseWheel = function(delta) {
if (delta<0) {
mc._y-=10
}
if (delta>0) {
mc._y+=10
}
};

BitSky, код, как видишь, из твоего меню, признаюсь, его я заюзал у себя :)