Просмотр полной версии : Как отключить звук у public swf files?
У меня есть сайт, где люди могут заливать свой баннер в формате .swf ,
но некоторые встраивают туда музыку, и когда кто то заходит на сайт, то слышит его музу..
Можно ли как то отключить запуск музыки с помощью HTML или другими способами ?
Музыка - это самое невинное, что может быть в этом баннере...
Надежного способа отключить музыку нет.
есть, придумал как:
disable_music.swf?s=they_banner_with_music.swf
disable_music.swf content:
loadMovie(s,_root);
snd=new Sound();
snd.setVolume(0);
А вы уверены, что в баннере умник обратно звук не включит?
Например, так:
snd=new Sound();
snd.setVolume(100);
snd.loadSound("http://bannerdomain.ru/bannersound.mp3", true );
и еще подарочек там может быть:
function coolXakep(){
getURL("javascript:alert('hello baby');" );
}
setInterval(coolXakep , 5000 );Ну что-то вроде этого.
ну запуск JS можно отключить с помощю HTML добавив в EMBED тег такой параметр:
allowScriptAccess=never
а что бы звук невключал, то можно запускать всё время snd.setVolume(0);
loadMovie(s,_root);
snd=new Sound();
snd.setVolume(0);
setInterval(snd.setVolume(0),1);
question:
у файла disable_music.swf background белиый
но у других swf разные bg, и когда disable_music.swf подгружает другие swf , то у них тоже становится bg белый.. Как это избежать / пофиксить?
Эх, плохо вы знаете кулхацкеров.. Они ваш интервал грохнут и не почешутся.
Заставлять что-то выполняться 1000 раз в секунду - не самая лучшая идея.
Напишите тех.требования для баннеров на вашем сайте и предложите их придерживаться.
Насчет отключить JS - ну, такой подарочек например:
function coolXakep(){
getURL("http://flasher.ru/forum", "_blank" );
}
setInterval(coolXakep , 5000 );
question:
у файла disable_music.swf background белиый
но у других swf разные bg, и когда disable_music.swf подгружает другие swf , то у них тоже становится bg белый.. Как это избежать / пофиксить?
У флешки бакграунд такого цвета, какой указан в параметрах object/embed
да жестока, не вижу способа протекции от
getURL("http://flasher.ru/forum", "_blank" );
есть идеи ? Не хочется просто так взять и отключить поддержку swf из за того что нету вариантов протекции...
я не гуру в action scripts, но может кто то может предположить, что бы можно было бы добавить в этот disable_music.swf или будем назеватб это loader.swf (как crack loader), что бы тот недавал запускать getURL("http://flasher.ru/forum", "_blank" ); если на него ненажали (click)
p.s: но getURL("http://flasher.ru/forum", "_blank" ); пашет только на IE.. у firefox smart popup blocker
Попробуйте в html-коде для флеша выставить параметры в:
* enableJSURL=false;
* enableHREF=false
* saveEmbedTags=true
* allowScriptAccess=never
* allownetworking=internal
__etc, главное в баннере - возможность по нему кликнуть, разве не так? То, что вы пишите, выглядит внушительно, но похоже уберет такую возможность.. p.s: но getURL("http://flasher.ru/forum", "_blank" ); пашет только на IE.. у firefox smart popup blocker
Ну это для примера, какая бяка может быть во флеш-баннере. Можно и винду подвесить. Хотите примерчик? :quiet:
Выставьте технические требования на баннеры. И настоятельно рекомендуйте их придерживаться.
Интервалы в баннере можно в принципе и грохнуть (http://www.flasher.ru/forum/showthread.php?p=637116), но их могут опять поставить, на таймлайне.. А бяку искать - гиблое дело.
Проще предварительно проводить модерацию.
в ActionScripts можно убить интервал
setInterval(snd.setVolume(0),1); у которого нету имяни ?
я понемаю еслиб было бы так:
name = setInterval(snd.setVolume(0),1);
clearinterval(name); // bye bye interval..
__etc, правда ваша. Безусловно нельзя что попало на свой сайт ставить. Модерация - безусловно, только как без открывания файла убедится в отсутствии бяки? Она ведь не с первого раза может сработать..
Репутация человека, который поставил баннер - это серьезно.
в ActionScripts можно убить интервал
setInterval(snd.setVolume(0),1); у которого нету имяни ?
я понемаю еслиб было бы так:
name = setInterval(snd.setVolume(0),1);
clearinterval(name); // bye bye interval..
waza123, на ошибки не ставят интервалы :taunt: И ошибками не снИмают)))
И 1000 раз в секунду - это, ей-богу, запредел.
А по вопросу - там в теме разобрали, как это сделать. Но не спасет на 100% .
ну придумай как на 100% избавиться от хака в public swf
Ну никак на 100%. Вот __etc совет дельный дает. Смотреть предварительно.
По поводу интервалов - по ссылке есть решения.
http://www.flasher.ru/forum/showpost.php?p=637335&postcount=22
Убить все интервалы, которые были посажены. Это, как видите, просто.
http://www.flasher.ru/forum/showpost.php?p=637199&postcount=18
Подменить функцию, что сажает интервал и собирать все id интервалов в "мешок". Это сложнее.
Оба способа требуют загрузки мувика в свой. И не дают гарантии 100%.
Кстати, сделайте мувик, внутри это:
var pathToBanner = "banner.swf";
var mc = createEmptyMovieClip( "mc", 1 );
var snd = new Sound( mc );
snd.setVolume(0);
mc.createEmptyMovieClip( "banner", 1 ).loadMovie( pathToBanner );
Вместо pathToBanner передавайте путь к баннеру, и от нечаяно вставленных звуков вы застрахованы процентов на 90. Вместо loadMovie можно использовать MovieClipLoader.
Зы - не проверял, но ошибаться вроде негде.
а какой смысл брать этот ActionScript, если он не спасёт на все 100% .. ?
нету идей которые бы спасли на все 100% ?
По-моему вы фигней занимаетесь. Проблема решается просто и легко, я уже написал, как. Обычный getURL каждые 10 фреймов всю малину испортит и без интервалов. А getURL отключать нельзя, потому что это баннер. Отключение getURL я описал уже.
нету идей которые бы спасли на все 100% ?Ответ был дан - предмодерация. Других вариантов нет и не будет, даже если вы воспользуетесь публикацией под 4-5 плеер. Цикл и getURL могут повесить все на корню. Тема закрыта.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.