|
|
|
| В 123 Flash Menu - создал флеш-меню, но оно не масштабируется на странице. Как с этим бороться? | |
|
|
|
|
|
|
|
для: boler
(28.08.2012 в 22:48)
| | Масштабировать придется при помощи JavaScript - выставляя соответствующие параметры ширины флешки, в зависимости от ширины окна. | |
|
|
|
|
|
|
|
для: cheops
(29.08.2012 в 10:31)
| | >Масштабировать придется при помощи JavaScript - выставляя соответствующие параметры ширины флешки, в зависимости от ширины окна.
Прошу прощение за делетанство, но хотелось бы услышать поподробнее, плз:) Привожу содержание JavaScript, который был сгенерирован вместе с HTML страничкой.
//
//
function AC_AX_RunContent(){
var ret = AC_GetArgs(arguments);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_RunFlashContent(){
var ret =
AC_GetArgs
( arguments, "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_RunMMContent(){
var ret =
AC_GetArgs
( arguments, "filename", "clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
, "application/x-mplayer2"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_RunRealContent(){
var ret =
AC_GetArgs
( arguments, "src", "clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"
, "audio/x-pn-realaudio-plugin"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_RunQTContent(){
var ret =
AC_GetArgs
( arguments, "src", "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
, "video/quicktime"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
str += '>';
for (var i in params)
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
str += '<embed ';
for (var i in embedAttrs)
str += i + '="' + embedAttrs[i] + '" ';
str += ' ></embed></object>';
document.write(str);
}
function AC_GetArgs(args, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
/// embed args
case "pluginspage":
case "type":
ret.embedAttrs[args[i]] = args[i+1];
break;
/// object args
case "data":
case "codebase":
case "classid":
case "id":
ret.objAttrs[args[i]] = args[i+1];
break;
/// common args
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
// special args
case "src":
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
// params
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
if (classid) ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
|
| |
|
|
|
|
|
|
|
для: boler
(28.08.2012 в 22:48)
| | может, надо открыть флаш и посмотреть, есть ли там -
Stage.scaleMode = "noScale";
|
?
в этом случае можно будет масштабировать скриптом извне. | |
|
|
|
|
7.7 Кб |
|
|
для: elenaki
(30.08.2012 в 10:38)
| | Вот скрипт самой флешки, где 100.swf - имя файла:
<!-- Begin Publishing Scripts of Flash Menu 100 -->
<div id="fm_placeholder_100" style="width: 109px; height: 244px ">
Loading Flash Menu</div><script type="text/javascript" defer>//<![CDATA[
var fm_100 = function() {
function getPos() {
var p=[0,0]; var e=document.getElementById('fm_placeholder_100');
do { p[0]+=e.offsetTop; p[1]+=e.offsetLeft; } while (e=e.offsetParent); return p; }
function move() {
var p=getPos(); var m=document.getElementById('fm_wrapper_100'); m.style.top=p[0]+'px'; m.style.left=p[1]+'px'; }
var create = function() {
var s; if (document.all && !window.opera) {
s='<object id="fm_menu_100" width="109px" height="140px" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
+'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">'
+'<param name="quality" value="high" /><param name="scale" value="noscale" /><param name="salign" value="LT" />'
+'<param name="movie" value="100.swf" /><param name="flashvars" value="callback=fm_100">'
+'<param name="menu" value="false" /><param name="wmode" value="transparent" /></object>'; }
else {
s='<embed type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" '
+'id="fm_menu_100" width="109px" height="140px" src="100.swf" wmode="transparent" '
+'flashvars="callback=fm_100" quality="high" scale="noscale" menu="false" salign="LT" />'; }
var p=getPos(); var m=document.createElement('div'); m.id='fm_wrapper_100'; m.style.position='absolute';
m.style.zIndex='100'; m.style.top=p[0]+'px'; m.style.left=p[1]+'px'; m.innerHTML=s;
document.body.insertBefore(m, document.body.firstChild); setInterval(move, 500); }();
return {
expand: function() {
document.getElementById('fm_menu_100').style.width='214px';
document.getElementById('fm_menu_100').style.height='244px'; },
collapse: function() {
document.getElementById('fm_menu_100').style.width='109px';
document.getElementById('fm_menu_100').style.height='140px';
}};}();//]]></script>
<!-- End Publishing Scripts of Flash Menu 100 -->
|
Дело в том, что ФОН масштабируется, а вот верхний слой - нет. Дело, видимо, в самой флешке. Пожалуйста, помогите решить проблему! | |
|
|
|