Flexpaper重叠html元素

时间:2012-04-10 16:45:30

标签: flash flexpaper

我知道我必须设置wmode属性,但我在哪里设置灵活卷纸中的属性。

以下是将Flexpaper嵌入HTML文档的代码。

<script type="text/javascript"> 
                    var doc                 = '<?php print $doc; ?>';
                    var numPages            = <?php echo getTotalPages($pdfFilePath . $doc) ?>;
                    var swfFileUrl          = escape('{services/view.php?doc='+doc+'&page=[*,0],'+numPages+'}');
                    var searchServiceUrl    = escape('services/containstext.php?doc='+doc+'&page=[page]&searchterm=[searchterm]');

                    var fp = new FlexPaperViewer(   
                             'FlexPaperViewer',
                             'viewerPlaceHolder', { config : {
                             SwfFile : swfFileUrl, 
                             Scale : 1, 
                             ZoomTransition : 'easeOut',
                             ZoomTime : 0.5,
                             ZoomInterval : 0.2,
                             FitPageOnLoad : false,
                             FitWidthOnLoad : false,
                             FullScreenAsMaxWindow : false,
                             ProgressiveLoading : false,
                             MinZoomSize : 0.2,
                             MaxZoomSize : 5,
                             SearchMatchAll : true,
                             SearchServiceUrl : searchServiceUrl,
                             InitViewMode : 'Portrait',
                             BitmapBasedRendering : false,

                             ViewModeToolsVisible : true,
                             ZoomToolsVisible : true,
                             NavToolsVisible : true,
                             CursorToolsVisible : true,
                             SearchToolsVisible : true,

                             localeChain: 'en_US'
                             }});           
                </script>

3 个答案:

答案 0 :(得分:1)

我没有看到通过将param传递给FlexPaperViewer构造函数来实现此目的的方法,但您可以在flexpaper_flash.js中解决它。在第19行附近并尝试在那里添加wmode param:

window.FlexPaperViewer = window.$f = function() {
    var config = arguments[2].config;

    window.FlexPaperViewer_Instance = flashembed(arguments[1], {
        //add wmode here
        wmode: "transparent",
        src: arguments[0]+".swf",
        version: [10, 0],
        expressInstall: "js/expressinstall.swf"
    },{
        ...
    });
};

答案 1 :(得分:1)

更好的想法是将以下内容添加到您的flexpaper配置中:

像这样:

var fp = new FlexPaperViewer(
                            '<%:FlexPaperViewer %>',
                            'documentViewer', { config: {

                                    SwfFile: '<%:SwfFile%>.swf',
                                    IMGFiles: '<%:SwfFile%>_{page}.png',
                                    JSONFile: '/GetJson.ashx?q=<%=SwfFile%>.json',

                                    ...lots of other irrelevant params...
                                    WMode : 'transparent',

                                    localeChain: 'en_US'
                                }
                            });

Flexpaper将获取WMode并将其设置在Flash对象上(我使用的是flexpaper 1.5(2012年5月))

答案 2 :(得分:0)

wmode实际上是您在HTML中使用SWF嵌入代码设置的配置参数。要更具体地回答,您需要展示如何嵌入代码以及FlexPaper所需的wmode值。但是,这里有几种方法可以根据常用的嵌入方法进行设置。

如果您使用的是嵌入SWF电影的HTML样式,请在现有的参数标签旁边添加此内容。

<param name="wmode" value="transparent">

或者,如果您使用SWFObject嵌入SWF,则可以像这样设置wmode:

var flashvars = {},
params = {wmode:"transparent"},
attributes = {};

swfobject.embedSWF("/swf/yourSWF.swf", "anim", "300", "200", "9.0.0", "/swf/expressInstall.swf", flashvars, params, attributes);

有关详细信息,请参阅wmode parameter上的Adobe文档。