Просмотр полной версии : Flash по всей странице
Bezlepkin
19.01.2011, 23:43
Скажите пожалуйста! У меня аудио плеер, например 200Х30. Там есть ползунок громкости. Когда его двигаешь он двигается в пределах флеш ролика. Как сделать что бы на него нажал и водишь по всему экрану и он срабатывает. Пример: www.mumiytroll.com (внизу)
rainbowrussia
19.01.2011, 23:55
Там тоже работает в пределах ролика. А вообще реализовать возможно, в связке с JavaScript - отслеживание положения курсора в пределах страницы и передача данных во флешку. Или из флешки запрос к JavaScript функции, которая возвратит положение мыши. Готовым кодом не поделюсь - нет его у меня.
О! А КАК ява-скрипт может скармливать во флэшину положение мышки??? localConnection ?
dark256, с помощью ExternalInterface и JS-функции, отслеживающей положение курсора в окне.
Делал такое пару раз для параллакса, когда надо было, чтобы параллакс в топовой флешке работал независимо от того, находится ли курсор на флешке или вне ее.
Если интересно, могу привести методы.
Если для АС2, и не сложно, скопипэйсти плиз чего-нть. Чисто для общего развития.
Возможно, автору темы это и нужно.
На странице код JavaScript:
function mousePageXY(e)
{
var x = 0, y = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY)
{
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY)
{
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return { 'x':x, 'y':y };
}
document.onmousemove = function(e)
{
var mCur = mousePageXY(e);
var node1 = document.getElementById('main');
node1.mMove(mCur.x, mCur.y);
};
Блок с id="main" - это и есть флешка. Внедрена с помощью SWFObject. Я делаю это динамическим способом, атрибут id назначается после внедрения флешки. Тут уж кому как привычнее...
И во флешке:
import flash.external.*;
var wasSuccessful:Boolean = ExternalInterface.addCallback('mMove', null, tOnMouseMove);
function tOnMouseMove(xMouse:String, yMouse:String)
{
var xMouseN:Number = Number(xMouse);
var yMouseN:Number = Number(yMouse);
//и тут ниже у меня немаленькая функция для движения нескольких "слоев", которая неинтересна
}
Таким образом флешка ловит координаты курсора во всем окне браузера, ловит всё четко, без тормозов.
О!
Видимо это принцип и использован в этой флэшке?
http://vkontakte.ru/app2107890_43915359
Кстати там мышь по всем двум мониторам можно таскать, даже поверх других браузеров... :)
Только не пойму - куда там воткнут JS и воткнут ли вообще...
Курс валют? Я что-то там не заметил работы с мышью вне флешки.
Да. Он. Синюю плашку большую с индексом валюту - нажать и тащить. Вверх и вбок от браузера. в любом пололжении барабан скроллится. Если только он не уперся в свой край :)
Это из-за нажатия на барабан. Тут нет отслеживания мышки с помощью js.
Bezlepkin
20.01.2011, 19:10
Я вставил код с Vimeo (видеосервер типа youtube) нажимаю и держу на ползунке громкости, вожу по всему экрану и громкость меняется. Значит дело не JavaScript.
rainbowrussia
20.01.2011, 19:38
Ну покажите чтоли, что у вас получилось. У меня все как положено - громкость Vimeo роликов меняется только в рамках флеш-ролика.
Bezlepkin
20.01.2011, 21:04
www.vidniy.ru
rainbowrussia
20.01.2011, 21:31
Firefox, громкость регулируется только в пределах флеш-ролика.
Bezlepkin
20.01.2011, 21:38
Я из Google Chrome
rainbowrussia
21.01.2011, 00:42
Сдается мне это фишка Хрома. Посмотрите в других основных браузерах - IE, Firefox, Opera.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.