PDA

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


bunker6
24.01.2002, 16:02
зафанател я от сунга по страшному. и возжелалось мне изготовить драгабельное окно.
только чет-то я не соображу, как эта фскоманда должна из флеши смотреться :)
что-то типа

on (press) {
fscommand ("команда-на драг");
}

или почему?
помогите пожалуйста... :(

nagash
24.01.2002, 17:01
можно сделать проще но наверное неправильнее :)

on (press) {
_root.i=1;
}

потом делаешь пустой мувик на котором написано

onClipEvent (enterFrame) {
if (i==1) {
getURL ("javascript:передаёшь икс и игрик");
}
}

а в самом хтмл ловишь эти иксы и игрики и делаешь moveTo кажись...
вот! :)

nagash
24.01.2002, 17:04
ах глупый форум!!!
он м java script сам пробел вставляет! %)

bunker6
24.01.2002, 17:18
спасибо, Нагаш, но хотелось бы все-же FSpilsner'ом :)
тем более что скрипт готовый есть.
меня более всего интересует событие запускающее эфэс...
например, извиняюсь, но что такое drag in я не знаю :confused: . не сталкивался. пойду хелп читать...

bunker6
24.01.2002, 19:25
ну как это сделать????????????????????
почему кликовая команда

on (release) {
fscommand ("закрыть");
}

работает, а

on (press) {
fscommand ("тащить");
}

не пашет???
у меня сейчас мозги через уши потекут :mad:

помогите пожалуйста!

and_kaz
24.01.2002, 19:49
...то проведу аналогию :)

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

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

ИМХО что то вроде внутреннего фокуса в браузере


Вот и у тебя тоже самое тока наоборот. Комп работает с флешь объектом, но не с окном браузера...


ЗЫ

Вот я тут гон прогнал :)

and_kaz
24.01.2002, 19:51
Оригинал написал(а) bunker6
on (release) {
fscommand ("закрыть");
}



Сорри проглядел :rolleyes:

[subway]design
24.01.2002, 20:05
А что нужно-то? Хромелесс?
В любом случаем "кликерная команда no release" - это не кликерная команда, а маусапная (onMouseUp - мышь отпущена, когда press=onMouseDown=мышь_нажата).
Я делал такие вещи через флеш - из-за его тормозов мышь постоянно соскальзывала с кнопки и драг прекращался. Надо делать с фреймами - 1 фрейм - полоса, отвечающая за драгабельность, 2 фрейм - основной. В первом - только ХТМЛ и ЖабаСкрипт.

Намеки:

window.moveTo(screenx,screeny); //или moveBy(); - сечас не помню что означает...
window.resizeTo(width,height);
document.onmousedown=down_handler; //скобки не надо!

function down_handler(){
...
}

И никакого Флеша! Уж очень он тормозит!

bunker6
24.01.2002, 20:08
2and_kaz
ты сайт недели видел? самсунговский?
открывается пейджа в окне, безо всяких там tool-scroll-title-bar'ов, а тайтлбар во флеши сделан. кнопочки шлют фскоманды, их ловит скрипт в пейдже, и дальше уже его заботы.

[subway]design
24.01.2002, 20:11
Насчет самсунга не знаю - еще с АСВ не докопался, но у меня такой глюк был: если курсор сдергиваешь с кнопки (и флеша тоже), то окно забывает о нем, а фрейм - нет.

bunker6
24.01.2002, 20:15
Сабвей, а на самсунге ничего не соскальзывает и не тормозит :)
я тоже так хочу!

зы.
а даже если и соскальзывает при совершенно неистовом дергании мышой, то драг не прекращается. так-то.

ish
24.01.2002, 20:49
так, я все думал отвечать или нет :)
когда то давно, я делал связку флэш интерфейса с js функциями по работе с окном. делал как простой эксперимент.
вот тут результат http://ishlab.ru/trash/FlashWindow/
драг осуществляется посредством js, а именно функции, которая исполняется на событие, генерируемое постоянно, принудительным путем из скрипта. со стороны флэша с помощью фск передается булево значение нажата ли кнопка (отлавливать драг) или нет. скрипт можно глянуть тут
http://ishlab.ru/trash/FlashWindow/window.js
к сожалению исходника части флэша у меня не сохранилось.

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

bunker6
24.01.2002, 21:11
к сожалению исходника части флэша у меня не сохранилось.
а жаль... очень хотелось бы взглянуть... :(

ish
24.01.2002, 21:19
а там ничего мудреного не было
скрипт js передавет во флэш размеры окна, флэш выстраивает элементы соответсвенно (четыре угла по углам окна и четыре промежуточные части растягивает между ними) на областях стоит код взаимодеиствия со скриптом js через фск, помойму так

bunker6
24.01.2002, 21:34
код взаимодеиствия со скриптом js через фск
он-то меня и интересует... :D

кто-нибудь объяснит мне, почему

on (release) {
fscommand ("закрыть");
}

работает,
а

on (press) {
fscommand ("драгать");
}

-не пашет, так ее растак, ***,***,***,... :mad:
на скрипт не валить, он совершенно точно правильный.
он только получает фск, а дальше сам ловит мышь и таскает окошко.
что за бред?

ish
24.01.2002, 22:15
скриптец бы еще глянуть :)

bunker6
25.01.2002, 17:36
// some crazy bullhsit comes here;-)
function main_DoFSCommand(command, args) {
var mainObj = InternetExplorer ? main : document.main;
if(command == "drag") {
pos = args.split("|");
xpos = Number(pos[0]);
ypos = Number(pos[1]);
if ( xpos !=0 || ypos !=0 ) {
window.moveBy(xpos*2,ypos*2);
}

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

nme
25.01.2002, 23:49
Сабвей, а на самсунге ничего не соскальзывает и не тормозит
Нет,кстати , ты не совсем прав. Там много глюков. И мыша там соскальзывает, если двигать посильней, вот попробуй. А если пойти на этот sumsung не по
http://www.samsungelectronics.com/comdex/index.html,
а по
http://www.samsungelectronics.com/comdex/comdex_index.html,
то откроется окно, которое будет выдавать перлы типа такого:

bunker6
26.01.2002, 00:07
глючит, понятно.
но я так и не въеду, как сделать передачу фс и аргументов постоянной...
:(
черт, дрянь какая... :mad:

bunker6
26.01.2002, 01:54
Ишь, скажи пожалуйста :(
к какому обьекту та привязывал Фскоманду и на какой evnt она посылалась?
делал залупленный мув из двух кадров? :(

[subway]design
26.01.2002, 09:25
Слушай, Бункер, я б на твоем месте не ФСкоммандом делал, а getURL("javascript: drag("+x+","+y+")"); где drag() - это JS функция, которую описываешь в странице.
Это раз. Во-вторых смирись с тем, что во Флеше с рождения наблюдается тормознутость АС'а и маленький ФПС, т.е. соскальзывание неизбежно, хотя бы когда у тебя 60 кадров/сек.
В-третьих, алгоритмы работы с событиями различны у АС и ЖС, т.е. в АС мышь уходя с кнопки говорит ей "релиз", или что-то такое (даже если не воткнут releaseOutside), а в ЖС при маусДауне ты можешь поставить флаг и каждые 10 миллисекунд проверять координаты (setInterval лучше mouseMov'a тем, что мышь может соскользнуть, а таймер работает всегда,... выходит, что во Флеше просто нехватает таймера:D )
Так что я уже помучался достаточно с флеш окнами, и на твоем месте написал бы ЖС реализацию.
ЗЫ: при прямых руках можно дизайн верхнего фрейма сделать как флешовый.
Удачи!

ish
26.01.2002, 10:23
я же говорю, у меня драг реализован в JS полностью, от флэша ожидается только команда, зажата ли кнопка на титл баре или нет.

эхх гулять так гулять, ща напишу скрипт, где все сразу станет понятно :)

ish
26.01.2002, 11:44
http://www.ishlab.ru/trash/dragDemo/

у кого хоть раз сорвется драг окна, получит карамельку чупа чупс от меня лично :)

исходники в аттаче ниже

strelok222
26.01.2002, 14:16
Народ вот посмотрите, выдрал с самсунга, и при просмотре скрол бар остается почему то?
window (http://www.strelok.by.ru/html/window/index.html)

ish
26.01.2002, 14:20
2 strelok222

вставь в тег body, scroll=no

bunker6
26.01.2002, 16:46
да, Сабвей, наверно чистой жабой проще

Ишь! зупагуд, но не стоит забывать что окно не будет пустым :)

bunker6
26.01.2002, 16:51
Ах ты блин!
Ишь, спасибо тебе огромное. посмотрел сорс.
умница.
:)

Amplify
27.01.2002, 22:58
Недоделанное и глюкавое....но немного в тему :)
Це флеша поверх хтмля...

Drag (http://www.dmt.ru/flash/drag/)

strelok222
11.02.2002, 16:59
Как тока у твоего флешового окна начинаеш что то менять оно глючит