dhtmlxFolders not working with Flash .swf files and the AC_

dhtmlxFolders.



Hi there,



dhtmlxFolders is not working with flash script: AC_RunActiveContent.js :



Replace NewHeader.swf with your own .swf file. There is a conflict.



























----[ START AC_RunActiveContent.js ] -----



//v1.7

// Flash Player Version Detection

// Detect Client Browser type

// Copyright 2005-2007 Adobe Systems Incorporated. All rights reserved.

var isIE = (navigator.appVersion.indexOf(“MSIE”) != -1) ? true : false;

var isWin = (navigator.appVersion.toLowerCase().indexOf(“win”) != -1) ? true : false;

var isOpera = (navigator.userAgent.indexOf(“Opera”) != -1) ? true : false;



function ControlVersion()

{

    var version;

    var axo;

    var e;



    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn’t in the registry



    try {

        // version will be set for 7.X or greater players

        axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.7”);

        version = axo.GetVariable("$version");

    } catch (e) {

    }



    if (!version)

    {

        try {

            // version will be set for 6.X players only

            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.6”);

            

            // installed player is some revision of 6.0

            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,

            // so we have to be careful.

            

            // default to the first public version

            version = “WIN 6,0,21,0”;



            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        

            axo.AllowScriptAccess = “always”;



            // safe to call for 6.0r47 or greater

            version = axo.GetVariable("$version");



        } catch (e) {

        }

    }



    if (!version)

    {

        try {

            // version will be set for 4.X or 5.X player

            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.3”);

            version = axo.GetVariable("$version");

        } catch (e) {

        }

    }



    if (!version)

    {

        try {

            // version will be set for 3.X player

            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.3”);

            version = “WIN 3,0,18,0”;

        } catch (e) {

        }

    }



    if (!version)

    {

        try {

            // version will be set for 2.X player

            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash”);

            version = “WIN 2,0,0,11”;

        } catch (e) {

            version = -1;

        }

    }

    

    return version;

}



// JavaScript helper required to detect Flash Player PlugIn version information

function GetSwfVer(){

    // NS/Opera version >= 3 check for Flash plugin in plugin array

    var flashVer = -1;

    

    if (navigator.plugins != null && navigator.plugins.length > 0) {

        if (navigator.plugins[“Shockwave Flash 2.0”] || navigator.plugins[“Shockwave Flash”]) {

            var swVer2 = navigator.plugins[“Shockwave Flash 2.0”] ? " 2.0" : “”;

            var flashDescription = navigator.plugins[“Shockwave Flash” + swVer2].description;

            var descArray = flashDescription.split(" “);

            var tempArrayMajor = descArray[2].split(”.");            

            var versionMajor = tempArrayMajor[0];

            var versionMinor = tempArrayMajor[1];

            var versionRevision = descArray[3];

            if (versionRevision == “”) {

                versionRevision = descArray[4];

            }

            if (versionRevision[0] == “d”) {

                versionRevision = versionRevision.substring(1);

            } else if (versionRevision[0] == “r”) {

                versionRevision = versionRevision.substring(1);

                if (versionRevision.indexOf(“d”) > 0) {

                    versionRevision = versionRevision.substring(0, versionRevision.indexOf(“d”));

                }

            }

            var flashVer = versionMajor + “.” + versionMinor + “.” + versionRevision;

        }

    }

    // MSN/WebTV 2.6 supports Flash 4

    else if (navigator.userAgent.toLowerCase().indexOf(“webtv/2.6”) != -1) flashVer = 4;

    // WebTV 2.5 supports Flash 3

    else if (navigator.userAgent.toLowerCase().indexOf(“webtv/2.5”) != -1) flashVer = 3;

    // older WebTV supports Flash 2

    else if (navigator.userAgent.toLowerCase().indexOf(“webtv”) != -1) flashVer = 2;

    else if ( isIE && isWin && !isOpera ) {

        flashVer = ControlVersion();

    }    

    return flashVer;

}



// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)

{

    versionStr = GetSwfVer();

    if (versionStr == -1 ) {

        return false;

    } else if (versionStr != 0) {

        if(isIE && isWin && !isOpera) {

            // Given “WIN 2,0,0,11”

            tempArray = versionStr.split(" “);     // [“WIN”, “2,0,0,11”]

            tempString = tempArray[1];            // “2,0,0,11”

            versionArray = tempString.split(”,");    // [‘2’, ‘0’, ‘0’, ‘11’]

        } else {

            versionArray = versionStr.split(".");

        }

        var versionMajor = versionArray[0];

        var versionMinor = versionArray[1];

        var versionRevision = versionArray[2];



    // is the major.revision >= requested major.revision AND the minor version >= requested minor

        if (versionMajor > parseFloat(reqMajorVer)) {

            return true;

        } else if (versionMajor == parseFloat(reqMajorVer)) {

            if (versionMinor > parseFloat(reqMinorVer))

                return true;

            else if (versionMinor == parseFloat(reqMinorVer)) {

                if (versionRevision >= parseFloat(reqRevision))

                    return true;

            }

        }

        return false;

    }

}



function AC_AddExtension(src, ext)

{

if (src.indexOf(’?’) != -1)

return src.replace(/?/, ext+’?’);

else

return src + ext;

}



function AC_Generateobj(objAttrs, params, embedAttrs)

{

var str = ‘’;

if (isIE && isWin && !isOpera)

{

str += '<object ';

for (var i in objAttrs)

{

str += i + ‘="’ + objAttrs[i] + '" ';

}

str += ‘>’;

for (var i in params)

{

str += ’ ';

}

str += ‘’;

}

else

{

str += '<embed ';

for (var i in embedAttrs)

{

str += i + ‘="’ + embedAttrs[i] + '" ';

}

str += '> ';

}



document.write(str);

}



function AC_FL_RunContent(){

var ret =

AC_GetArgs

( arguments, “.swf”, “movie”, “clsid:d27cdb6e-ae6d-11cf-96b8-444553540000”

, “application/x-shockwave-flash”

);

AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);

}



function AC_SW_RunContent(){

var ret =

AC_GetArgs

( arguments, “.dcr”, “src”, “clsid:166B1BCA-3F9C-11CF-8075-444553540000”

, null

);

AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);

}



function AC_GetArgs(args, ext, 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){    

case “classid”:

break;

case “pluginspage”:

ret.embedAttrs[args[i]] = args[i+1];

break;

case “src”:

case “movie”:    

args[i+1] = AC_AddExtension(args[i+1], ext);

ret.embedAttrs[“src”] = args[i+1];

ret.params[srcParamName] = args[i+1];

break;

case “onafterupdate”:

case “onbeforeupdate”:

case “onblur”:

case “oncellchange”:

case “onclick”:

case “ondblClick”:

case “ondrag”:

case “ondragend”:

case “ondragenter”:

case “ondragleave”:

case “ondragover”:

case “ondrop”:

case “onfinish”:

case “onfocus”:

case “onhelp”:

case “onmousedown”:

case “onmouseup”:

case “onmouseover”:

case “onmousemove”:

case “onmouseout”:

case “onkeypress”:

case “onkeydown”:

case “onkeyup”:

case “onload”:

case “onlosecapture”:

case “onpropertychange”:

case “onreadystatechange”:

case “onrowsdelete”:

case “onrowenter”:

case “onrowexit”:

case “onrowsinserted”:

case “onstart”:

case “onscroll”:

case “onbeforeeditfocus”:

case “onactivate”:

case “onbeforedeactivate”:

case “ondeactivate”:

case “type”:

case “codebase”:

case “id”:

ret.objAttrs[args[i]] = args[i+1];

break;

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;

default:

ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];

}

}

ret.objAttrs[“classid”] = classid;

if (mimeType) ret.embedAttrs[“type”] = mimeType;

return ret;

}



Can you please provide some more details how you are using dhtmlxFolders and swf player script?
There must not be any conflict from using the both scripts on the same page, but if you are using flash objects inside dhtmlxFolders - it may be problematic. Folders recreated the elements object after some events which will break normal flash functionality.

I have the same problem as Shane. But the problem I have is in dhtmltree. I did not use flash inside dhtmltree. Once I include the dhtmlxcommon.js. The flash won’t work any more. You must have some conflicts with flash’s AC_RunActiveContent.js.


>> Once I include the dhtmlxcommon.js. The flash won’t work any more.


Please, provide the complete demo or direct link to reproduce the issue.

Hi there,
Here is the code.





Client Prototype



















    

     


       
     

     

       
       
                 
          <object classid=“clsid:d27cdb6e-ae6d-11cf-96b8-444553540000” codebase=“http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0” name=“planets” width=“380” height=“320”    align=“middle” id=“planets”>
           
           
                <embed src=“planets.swf” quality=“high” bgcolor="#999999" width=“380” height=             “320” name=“planets” align=“middle” allowScriptAccess=“sameDomain” allowFullScreen=“false” type=“application/x-shockwave-flash” pluginspage=“http://www.macromedia.com/go/getflashplayer” />
         
             
     






Everything in that code about flash is generated by flash itself. Replace the .swf file to your local swf file. Any swf file would do the job. Thanks.

Here is the AC_RunActiveContent.js generated by flash:
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf(“MSIE”) != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf(“win”) != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf(“Opera”) != -1) ? true : false;

function ControlVersion()
{
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn’t in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.7”);
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.6”);
           
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful.
           
            // default to the first public version
            version = “WIN 6,0,21,0”;

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)       
            axo.AllowScriptAccess = “always”;

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.3”);
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.3”);
            version = “WIN 3,0,18,0”;
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject(“ShockwaveFlash.ShockwaveFlash”);
            version = “WIN 2,0,0,11”;
        } catch (e) {
            version = -1;
        }
    }
   
    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
   
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins[“Shockwave Flash 2.0”] || navigator.plugins[“Shockwave Flash”]) {
            var swVer2 = navigator.plugins[“Shockwave Flash 2.0”] ? " 2.0" : “”;
            var flashDescription = navigator.plugins[“Shockwave Flash” + swVer2].description;
            var descArray = flashDescription.split(" “);
            var tempArrayMajor = descArray[2].split(”.");           
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == “”) {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == “d”) {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == “r”) {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf(“d”) > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf(“d”));
                }
            }
            var flashVer = versionMajor + “.” + versionMinor + “.” + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf(“webtv/2.6”) != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf(“webtv/2.5”) != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf(“webtv”) != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }   
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given “WIN 2,0,0,11”
            tempArray         = versionStr.split(" “);     // [“WIN”, “2,0,0,11”]
            tempString        = tempArray[1];            // “2,0,0,11”
            versionArray      = tempString.split(”,");    // [‘2’, ‘0’, ‘0’, ‘11’]
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];

            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf(’?’) != -1)
    return src.replace(/?/, ext+’?’);
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
  var str = ‘’;
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + ‘="’ + objAttrs[i] + '" ';
    }
    str += ‘>’;
    for (var i in params)
    {
      str += ’ ';
    }
    str += ‘’;
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + ‘="’ + embedAttrs[i] + '" ';
    }
    str += '> ';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, “.swf”, “movie”, “clsid:d27cdb6e-ae6d-11cf-96b8-444553540000”
     , “application/x-shockwave-flash”
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, “.dcr”, “src”, “clsid:166B1BCA-3F9C-11CF-8075-444553540000”
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, 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){   
      case “classid”:
        break;
      case “pluginspage”:
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case “src”:
      case “movie”:   
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs[“src”] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case “onafterupdate”:
      case “onbeforeupdate”:
      case “onblur”:
      case “oncellchange”:
      case “onclick”:
      case “ondblclick”:
      case “ondrag”:
      case “ondragend”:
      case “ondragenter”:
      case “ondragleave”:
      case “ondragover”:
      case “ondrop”:
      case “onfinish”:
      case “onfocus”:
      case “onhelp”:
      case “onmousedown”:
      case “onmouseup”:
      case “onmouseover”:
      case “onmousemove”:
      case “onmouseout”:
      case “onkeypress”:
      case “onkeydown”:
      case “onkeyup”:
      case “onload”:
      case “onlosecapture”:
      case “onpropertychange”:
      case “onreadystatechange”:
      case “onrowsdelete”:
      case “onrowenter”:
      case “onrowexit”:
      case “onrowsinserted”:
      case “onstart”:
      case “onscroll”:
      case “onbeforeeditfocus”:
      case “onactivate”:
      case “onbeforedeactivate”:
      case “ondeactivate”:
      case “type”:
      case “codebase”:
      case “id”:
        ret.objAttrs[args[i]] = args[i+1];
        break;
      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;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs[“classid”] = classid;
  if (mimeType) ret.embedAttrs[“type”] = mimeType;
  return ret;
}

Everything in that code about flash is generated by flash itself. Replace the .swf file to your local swf file. Any swf file would do the job. Thanks.

Hi there,
Sorry for posting the code in several places. Just found out that it might be useful to include the flash generated code too. Thanks.

Please delete those duplicated post.


Hello,


Please, send us the complete demo sample which contains all necessary files and ready for testing. But, the direct link will be better. We just need the sample demonstares that dhtmlcommon.js is the reason for the flash issue.


The information can be send also to support@dhtml.com