PDA

Просмотр полной версии : MOUSE_WHELL не работает в FireFox


fduch
24.03.2013, 20:14
cont.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);
function scroll(e:MouseEvent){
trace(e);
}

Работает в ИЕ, хроме.
В ФФ не пашет.
Как бороться?

Добавлено через 2 минуты
зы: Я помню, что когда спрашивал в прошлый рас про "перехватывание ролика браузером", вы посовытовали воспользоваться ФИКсом, который писал _етс, но нет ли другого способа, косабельно конкретно косяка с ФФ?

ZicoRio
24.03.2013, 23:39
Прилипите прослушку к stage - должна заработать полюбому,
хотя все это странно - у меня скроллится меню как положено.
И попробуйте вместо trace(e) - что-нибудь наглядно-визуальное, возможно-таки все работает.

fduch
26.03.2013, 20:23
Трасе е это я просто для упрощения на форуме написал, процедура скролит список вниз и вверх.
Прилипил к сцене(хотя мне этот вариант не подходит, так как находясь над определенным контейнером, должны вызываться разные функции).
Непашет.

ZicoRio
27.03.2013, 00:09
Еще раз - вместо trace(e) положите что-нибудь точно работающее на 100% (не ваши процедуры)
Нужно удостовериться что событие генерится.
Попробуйте изменить название функции scroll или еще что - в FF все должно работать, похоже дело
в какой-то не явной мелочи.

fduch
27.03.2013, 20:39
Оно 100% работает! Во всех браузерах, кроме ФФ, повесил на эту же функцию кнопку ф1, оно вызывается и работает.
Неработает только ролик и только в ФФ
Переименовал функция не работает.

Написал отдально прогу, которая только и делает что опрашивает ролик и выводит текст.
if(!e){tf.text="qq";}
if(e == null){tf.text="ww";}
tf.text=" "+e;}
В фф ролик вообще игнориться.

iflamberg
27.03.2013, 20:44
Используйте http://etcs.ru/blog/as3/mousewheel_v11_update/

ZicoRio
28.03.2013, 02:31
Какая ось, версия FF и версия Flash Player'a?

fduch
28.03.2013, 23:25
Тестил под 7сп1 под ХПсп3 фф 19.0.2 фп 11

ZicoRio
29.03.2013, 00:34
Ну как бы чудеса в решете.
У меня XP SP3 FF 19.0.2 - во всех меню своего приложения использую
прокрутку мышью - все работает как часы (в принципе не работает только в QtWebKit).
Вам нужно, видимо, вдумчиво по коду пройтись, настройки размещения
флешки на html странице рассмотреть поближе, возможно настройки браузера какие
покрутить (возможно переустановить), вобщем взять себя в руки и еще раз шаг за шагом
все проверить.
Терпения и удачи.

fduch
29.03.2013, 22:01
Давайте пойдем вашим путем)))
вот ссылочка http://bjiactb.60ru.com/test.html потестите ролик в фф. ( у меня не работает)
вот код:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.text.TextField;

/**
* ...
* @author BJIACTb
*/
public class Main extends Sprite
{

public var tf:TextField = new TextField();

public var xx:int = 100;
public var yy:int = 100;


public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);

tf.x = xx; tf.y = yy;
tf.border = true; tf.text = "11111";

addChild(tf);

stage.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);

}

function scroll (e:MouseEvent) {

if (e.delta > 0) { yy++; }
if (e.delta < 0) { yy--; }

tf.x = xx; tf.y = yy;
tf.border = true; tf.text = "11111";
addChild(tf);
}

}

}

Добавлено через 1 минуту
зы: На соседнем компе в ФФ тоже не пашет, так что переустанавливать чтото не имеет смысла.

Добавлено через 41 минуту
Прикрутил ЕТСовский фикс, но как то криво....не работает у меня, попровте плс.
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.KeyboardEvent;

import ru.etsc.ui.MouseWheel;


[SWF(width = "400", height = "300")]


public class Main extends Sprite {

public var tf:TextField = new TextField();
public var xx = 100;
public var yy = 100;

public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);


tf.x = xx; tf.y = yy;
tf.border = true; tf.text = "11111";

addChild(tf);

stage.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);



stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey);


}


function onKey(evt:KeyboardEvent):void
{
if (evt.keyCode == 32 || evt.keyCode == 13) {
handler_click();
}
}

function scroll (e:MouseEvent) {

if (e.delta > 0) { yy++; }
if (e.delta < 0) { yy--; }

tf.x = xx; tf.y = yy;
tf.border = true; tf.text = "11111";
addChild(tf);
}
// private function handler_click(event:Event):void {
private function handler_click():void {
if (MouseWheel.captured) {
MouseWheel.release();
} else {
MouseWheel.capture();
}

//this._field.text = 'Mouse wheel ' + (MouseWheel.captured ? 'captured' : 'released');
}
}
}

ZicoRio
30.03.2013, 02:57
Ваш HTML-код, ужас - это ничего не сказать!
На 40 строчках 1000 ошибок.
Напишите нормальную страницу (корректный HTML) и в параметрах wmode поставьте window.
Посмотрите что получиться.
Не лепите горбатого - авось сработает.

fduch
30.03.2013, 13:04
Я не знаю хтмл в принципе, в гугле написал "swf в html", этот код был по одной из первых ссылок.
Приведите пример корректного.

Добавлено через 1 минуту
К томуже причем тут хтмл и флеш..... Если допустим в контакт загрузить флешку, то там ролик тоже не пашет.

ZicoRio
30.03.2013, 15:01
Приведите пример корректного - я так понимаю это просьба, а когда просят - говорят пожалуйста.
К томуже причем тут хтмл - браузер пишут тоже люди и если он не знает что делать с контентом,
то может некорректно интерпретировать, отсюда и проблемы. Эти технологии крепко связаны, Flash
ролик без интеграции в страницу HTML (в браузере) работать не может.
Пока в чем причина - не ясно, я вам подсказываю что делать, а вы еще и не довольны.

fduch
30.03.2013, 17:57
Приведите пример корректного - я так понимаю это просьба, а когда просят - говорят пожалуйста.
Вы конечно простите меня, но смысла во фразе: "у вас все криво по этому и неработает" нету никакого.
Я на форум и пишу, потому что не знаю, как чтото сделать...
Поэтому написать ничего не значащаю фразу, а после еще учить "красотам" русского языка на мой взгляд не очень правильно.
Если хотите(можете) помоч, помогите, а если хотите чтобы вас упрашивали, не отвечайте ПОЖАЛУЙСТА больше в моих топиках.


К томуже причем тут хтмл - браузер пишут тоже люди и если он не знает что делать с контентом,
то может некорректно интерпретировать, отсюда и проблемы. Эти технологии крепко связаны, Flash
ролик без интеграции в страницу HTML (в браузере) работать не может.
Пока в чем причина - не ясно, я вам подсказываю что делать, а вы еще и не довольны.

Оо Тоесть предлогаете написать в сапорт Мозилы, чтобы они подправили код свой?
Я не долен тем, что ваш ответ не информативный, я спросил совета/помощи, а получается просто флуд.

ZicoRio
30.03.2013, 18:07
Я все понял, простите меня пожалуйста, писать вам больше не буду.

fduch
30.03.2013, 18:20
Я все понял, простите меня пожалуйста, писать вам больше не буду.

Кстати <param name="wmode" value="window" /> решило проблему в хтмл.

Добавлено через 1 минуту
И в контакте тоже, хотя и таскает за собой весь экран. Осталось разобраться, как правильно юзать ЕТСовский фих.

зы: Был не прав, по поводу не информативности вашего ответа. сори.

max123456789
14.04.2013, 07:09
С параметром Wmode решается здесь http://labs.byhook.com/2010/04/09/flash-mouse-wheel-support/