Flash теряет переменные при скрытии - PullRequest
1 голос
/ 17 августа 2011

У меня есть флэш-файл в div.Этот div установлен в видимый (display:block;).У div есть два родственных div.Все три элемента управляются пользовательскими вкладками jQuery, поэтому при нажатии на другую вкладку видимый в данный момент элемент переключается display:none;.При повторном щелчке по вкладке для установки div для вспышек равным display:block, файл флэш-памяти теряет все свои сохраненные значения (например, в текстовой области, весь текст сбрасывается, и где элемент сохраняет путь к изображению, чтосбрасывается).

Я пробовал другие методы, такие как width:0; height:0;, который работает, но, поскольку флэш-файл больше двух других div, он все еще виден снизу.Итак, я попытался overflow:hidden;, но та же проблема все еще возникает, как описано выше (потеря значений).

visibility:hidden не применимо, так как есть большой пробел, где должен быть файл флэш-памяти.

position:absolute; top:-800px; left:-600px; теряет переменные.

border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; также теряет переменные.

Можно ли использовать какой-либо другой метод?У меня есть wmode=transparent aswell.

Ниже приведен код моей флеш-вставки:

<object wmode="transparent" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="690" height="2047" id="gdh_v3_1" align="middle">
            <param  name="allowScriptAccess" value="sameDomain" />
            <param name="movie" value="gdh_v4.swf?rnd=6389" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#ffffff" />
            <param name="wmode" value="transparent"> 
            <param name="FlashVars" value="forcecrop=False&submitted=False&headerfile=&footerfile=&xmlfile=<?php echo $_GET['adfolder'];?>.xml&adfolder=<?php echo $_GET['adfolder'];?>&pics=gld101cc%2Ejpg%2C" />
            <embed wmode="transparent" src="gdh_v4.swf?rnd=6389" FlashVars=forcecrop=False&submitted=False&headerfile=&footerfile=&xmlfile=<?php echo $_GET['adfolder'];?>.xml&adfolder=<?php echo $_GET['adfolder'];?>&pics=gld101cc%2Ejpg%2C" quality="high" bgcolor="#ffffff" width="690" height="2047" name="gdh_v4" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
        </object>

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

У меня была та же проблема несколько лет назад, я думаю, вам нужно использовать оба подхода; высота: 0 и видимость: скрыто .Internet Explorer будет поддерживать Flash-объект, даже если вы скрываете его, чтобы избежать плохого рендеринга Internet Explorer 7, когда для высоты установлено значение 0. Вы можете добавить исключение.

Вот пример кода

предположим oldTab глобальная переменная, которая по умолчанию установлена ​​в 1, newT устанавливается событием click.

if(newT != oldTab){
  if($.browser.msie){
    window.document.getElementById("t"+ oldTab).style.display = "none";
    window.document.getElementById("t"+ newT).style.display = "block";
  }
  else{
    window.document.getElementById("t"+ oldTab).style.height = "0px";
    window.document.getElementById("t"+ oldTab).style.visibility = "hidden";

    window.document.getElementById("t"+ newT).style.height = "auto";
    window.document.getElementById("t"+ newT).style.visibility = "visible";
  }
  oldTab = newT;
}
1 голос
/ 17 августа 2011

Является ли использование SharedObjects (AS3) вариантом для вас?Могли бы просто хранить там переменные.

var sh:SharedObject = SharedObject.getLocal("something");

// set values
sh.data.someVar = "Some value";

Единственная проблема здесь заключается в том, что значения останутся, если они будут просматривать ваш сайт в любое время в будущем (что может быть не очень хорошо в вашем случае, потом сноваэто может быть круто).

...