H5——简易马祖【分分快三计划】

作者:分分快三计划

 

 

  用到的处理小数的js  xiaoshu.js

     */
    if(!singleFile) {
        if (!jsFiles) {
            jsFiles = [
                "OpenLayers/BaseTypes/Class.js",
                "OpenLayers/Util.js",
                "OpenLayers/Util/vendorPrefix.js",
                "OpenLayers/Animation.js",
                "OpenLayers/BaseTypes.js",
                "OpenLayers/BaseTypes/Bounds.js",
                "OpenLayers/BaseTypes/Date.js",
                "OpenLayers/BaseTypes/Element.js",
                "OpenLayers/BaseTypes/LonLat.js",
                "OpenLayers/BaseTypes/Pixel.js",
                "OpenLayers/BaseTypes/Size.js",
                "OpenLayers/Console.js",
                "OpenLayers/Tween.js",
                "OpenLayers/Kinetic.js",
                "OpenLayers/Events.js",
                "OpenLayers/Events/buttonclick.js",
                "OpenLayers/Events/featureclick.js",
                "OpenLayers/Request.js",
                "OpenLayers/Request/XMLHttpRequest.js",
                "OpenLayers/Projection.js",
                "OpenLayers/Map.js",
                "OpenLayers/Layer.js",
                "OpenLayers/Icon.js",
                "OpenLayers/Marker.js",
                "OpenLayers/Marker/Box.js",
                "OpenLayers/Popup.js",
                "OpenLayers/Tile.js",
                "OpenLayers/Tile/Image.js",
                "OpenLayers/Tile/Image/IFrame.js",
                "OpenLayers/Tile/UTFGrid.js",
                "OpenLayers/Layer/Image.js",
                "OpenLayers/Layer/SphericalMercator.js",
                "OpenLayers/Layer/EventPane.js",
                "OpenLayers/Layer/FixedZoomLevels.js",
                "OpenLayers/Layer/Google.js",
                "OpenLayers/Layer/Google/v3.js",
                "OpenLayers/Layer/HTTPRequest.js",
                "OpenLayers/Layer/Grid.js",
                "OpenLayers/Layer/MapGuide.js",
                "OpenLayers/Layer/MapServer.js",
                "OpenLayers/Layer/KaMap.js",
                "OpenLayers/Layer/KaMapCache.js",
                "OpenLayers/Layer/Markers.js",
                "OpenLayers/Layer/Text.js",
                "OpenLayers/Layer/WorldWind.js",
                "OpenLayers/Layer/ArcGIS93Rest.js",
                "OpenLayers/Layer/WMS.js",
                "OpenLayers/Layer/WMTS.js",
                "OpenLayers/Layer/ArcIMS.js",
                "OpenLayers/Layer/GeoRSS.js",
                "OpenLayers/Layer/Boxes.js",
                "OpenLayers/Layer/XYZ.js",
                "OpenLayers/Layer/UTFGrid.js",
                "OpenLayers/Layer/OSM.js",
                "OpenLayers/Layer/Bing.js",
                "OpenLayers/Layer/TMS.js",
                "OpenLayers/Layer/TileCache.js",
                "OpenLayers/Layer/Zoomify.js",
                "OpenLayers/Layer/ArcGISCache.js",
                "OpenLayers/Popup/Anchored.js",
                "OpenLayers/Popup/Framed.js",
                "OpenLayers/Popup/FramedCloud.js",
                "OpenLayers/Feature.js",
                "OpenLayers/Feature/Vector.js",
                "OpenLayers/Handler.js",
                "OpenLayers/Handler/Click.js",
                "OpenLayers/Handler/Hover.js",
                "OpenLayers/Handler/Point.js",
                "OpenLayers/Handler/Path.js",
                "OpenLayers/Handler/Polygon.js",
                "OpenLayers/Handler/Feature.js",
                "OpenLayers/Handler/Drag.js",
                "OpenLayers/Handler/Pinch.js",
                "OpenLayers/Handler/RegularPolygon.js",
                "OpenLayers/Handler/Box.js",
                "OpenLayers/Handler/MouseWheel.js",
                "OpenLayers/Handler/Keyboard.js",
                "OpenLayers/Control.js",
                "OpenLayers/Control/Attribution.js",
                "OpenLayers/Control/Button.js",
                "OpenLayers/Control/CacheRead.js",
                "OpenLayers/Control/CacheWrite.js",
                "OpenLayers/Control/ZoomBox.js",
                "OpenLayers/Control/ZoomToMaxExtent.js",
                "OpenLayers/Control/DragPan.js",
                "OpenLayers/Control/Navigation.js",
                "OpenLayers/Control/PinchZoom.js",
                "OpenLayers/Control/TouchNavigation.js",
                "OpenLayers/Control/MousePosition.js",
                "OpenLayers/Control/OverviewMap.js",
                "OpenLayers/Control/KeyboardDefaults.js",
                "OpenLayers/Control/PanZoom.js",
                "OpenLayers/Control/PanZoomBar.js",
                "OpenLayers/Control/ArgParser.js",
                "OpenLayers/Control/Permalink.js",
                "OpenLayers/Control/Scale.js",
                "OpenLayers/Control/ScaleLine.js",
                "OpenLayers/Control/Snapping.js",
                "OpenLayers/Control/Split.js",
                "OpenLayers/Control/LayerSwitcher.js",
                "OpenLayers/Control/DrawFeature.js",
                "OpenLayers/Control/DragFeature.js",
                "OpenLayers/Control/ModifyFeature.js",
                "OpenLayers/Control/Panel.js",
                "OpenLayers/Control/SelectFeature.js",
                "OpenLayers/Control/NavigationHistory.js",
                "OpenLayers/Control/Measure.js",
                "OpenLayers/Control/WMSGetFeatureInfo.js",
                "OpenLayers/Control/WMTSGetFeatureInfo.js",
                "OpenLayers/Control/Graticule.js",
                "OpenLayers/Control/TransformFeature.js",
                "OpenLayers/Control/UTFGrid.js",
                "OpenLayers/Control/SLDSelect.js",
                "OpenLayers/Control/Zoom.js",
                "OpenLayers/Geometry.js",
                "OpenLayers/Geometry/Collection.js",
                "OpenLayers/Geometry/Point.js",
                "OpenLayers/Geometry/MultiPoint.js",
                "OpenLayers/Geometry/Curve.js",
                "OpenLayers/Geometry/LineString.js",
                "OpenLayers/Geometry/LinearRing.js",
                "OpenLayers/Geometry/Polygon.js",
                "OpenLayers/Geometry/MultiLineString.js",
                "OpenLayers/Geometry/MultiPolygon.js",
                "OpenLayers/Renderer.js",
                "OpenLayers/Renderer/Elements.js",
                "OpenLayers/Renderer/SVG.js",
                "OpenLayers/Renderer/Canvas.js",
                "OpenLayers/Renderer/VML.js",
                "OpenLayers/Layer/Vector.js",
                "OpenLayers/Layer/PointGrid.js",
                "OpenLayers/Layer/Vector/RootContainer.js",
                "OpenLayers/Strategy.js",
                "OpenLayers/Strategy/Filter.js",
                "OpenLayers/Strategy/Fixed.js",
                "OpenLayers/Strategy/Cluster.js",
                "OpenLayers/Strategy/Paging.js",
                "OpenLayers/Strategy/BBOX.js",
                "OpenLayers/Strategy/Save.js",
                "OpenLayers/Strategy/Refresh.js",
                "OpenLayers/Filter.js",
                "OpenLayers/Filter/FeatureId.js",
                "OpenLayers/Filter/Logical.js",
                "OpenLayers/Filter/Comparison.js",
                "OpenLayers/Filter/Spatial.js",
                "OpenLayers/Filter/Function.js",               
                "OpenLayers/Protocol.js",
                "OpenLayers/Protocol/HTTP.js",
                "OpenLayers/Protocol/WFS.js",
                "OpenLayers/Protocol/WFS/v1.js",
                "OpenLayers/Protocol/WFS/v1_0_0.js",
                "OpenLayers/Protocol/WFS/v1_1_0.js",
                "OpenLayers/Protocol/CSW.js",
                "OpenLayers/Protocol/CSW/v2_0_2.js",
                "OpenLayers/Protocol/Script.js",
                "OpenLayers/Protocol/SOS.js",
                "OpenLayers/Protocol/SOS/v1_0_0.js",
                "OpenLayers/Layer/PointTrack.js",
                "OpenLayers/Style.js",
                "OpenLayers/Style2.js",
                "OpenLayers/StyleMap.js",
                "OpenLayers/Rule.js",
                "OpenLayers/Format.js",
                "OpenLayers/Format/QueryStringFilter.js",
                "OpenLayers/Format/XML.js",
                "OpenLayers/Format/XML/VersionedOGC.js",
                "OpenLayers/Format/Context.js",
                "OpenLayers/Format/ArcXML.js",
                "OpenLayers/Format/ArcXML/Features.js",
                "OpenLayers/Format/GML.js",
                "OpenLayers/Format/GML/Base.js",
                "OpenLayers/Format/GML/v2.js",
                "OpenLayers/Format/GML/v3.js",
                "OpenLayers/Format/Atom.js",
                "OpenLayers/Format/EncodedPolyline.js",
                "OpenLayers/Format/KML.js",
                "OpenLayers/Format/GeoRSS.js",
                "OpenLayers/Format/WFS.js",
                "OpenLayers/Format/OWSCommon.js",
                "OpenLayers/Format/OWSCommon/v1.js",
                "OpenLayers/Format/OWSCommon/v1_0_0.js",
                "OpenLayers/Format/OWSCommon/v1_1_0.js",
                "OpenLayers/Format/WCSCapabilities.js",
                "OpenLayers/Format/WCSCapabilities/v1.js",
                "OpenLayers/Format/WCSCapabilities/v1_0_0.js",
                "OpenLayers/Format/WCSCapabilities/v1_1_0.js",
                "OpenLayers/Format/WFSCapabilities.js",
                "OpenLayers/Format/WFSCapabilities/v1.js",
                "OpenLayers/Format/WFSCapabilities/v1_0_0.js",
                "OpenLayers/Format/WFSCapabilities/v1_1_0.js",
                "OpenLayers/Format/WFSDescribeFeatureType.js",
                "OpenLayers/Format/WMSDescribeLayer.js",
                "OpenLayers/Format/WMSDescribeLayer/v1_1.js",
                "OpenLayers/Format/WKT.js",
                "OpenLayers/Format/CQL.js",
                "OpenLayers/Format/OSM.js",
                "OpenLayers/Format/GPX.js",
                "OpenLayers/Format/Filter.js",
                "OpenLayers/Format/Filter/v1.js",
                "OpenLayers/Format/Filter/v1_0_0.js",
                "OpenLayers/Format/Filter/v1_1_0.js",
                "OpenLayers/Format/SLD.js",
                "OpenLayers/Format/SLD/v1.js",
                "OpenLayers/Format/SLD/v1_0_0.js",
                "OpenLayers/Format/SLD/v1_0_0_GeoServer.js",
                "OpenLayers/Format/OWSCommon.js",
                "OpenLayers/Format/OWSCommon/v1.js",
                "OpenLayers/Format/OWSCommon/v1_0_0.js",
                "OpenLayers/Format/OWSCommon/v1_1_0.js",
                "OpenLayers/Format/CSWGetDomain.js",
                "OpenLayers/Format/CSWGetDomain/v2_0_2.js",
                "OpenLayers/Format/CSWGetRecords.js",
                "OpenLayers/Format/CSWGetRecords/v2_0_2.js",
                "OpenLayers/Format/WFST.js",
                "OpenLayers/Format/WFST/v1.js",
                "OpenLayers/Format/WFST/v1_0_0.js",
                "OpenLayers/Format/WFST/v1_1_0.js",
                "OpenLayers/Format/Text.js",
                "OpenLayers/Format/JSON.js",
                "OpenLayers/Format/GeoJSON.js",
                "OpenLayers/Format/WMC.js",
                "OpenLayers/Format/WMC/v1.js",
                "OpenLayers/Format/WMC/v1_0_0.js",
                "OpenLayers/Format/WMC/v1_1_0.js",
                "OpenLayers/Format/WCSGetCoverage.js",
                "OpenLayers/Format/WMSCapabilities.js",
                "OpenLayers/Format/WMSCapabilities/v1.js",
                "OpenLayers/Format/WMSCapabilities/v1_1.js",
                "OpenLayers/Format/WMSCapabilities/v1_1_0.js",
                "OpenLayers/Format/WMSCapabilities/v1_1_1.js",
                "OpenLayers/Format/WMSCapabilities/v1_3.js",
                "OpenLayers/Format/WMSCapabilities/v1_3_0.js",
                "OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js",
                "OpenLayers/Format/WMSGetFeatureInfo.js",
                "OpenLayers/Format/SOSCapabilities.js",
                "OpenLayers/Format/SOSCapabilities/v1_0_0.js",
                "OpenLayers/Format/SOSGetFeatureOfInterest.js",
                "OpenLayers/Format/SOSGetObservation.js",
                "OpenLayers/Format/OWSContext.js",
                "OpenLayers/Format/OWSContext/v0_3_1.js",
                "OpenLayers/Format/WMTSCapabilities.js",
                "OpenLayers/Format/WMTSCapabilities/v1_0_0.js",
                "OpenLayers/Format/WPSCapabilities.js",
                "OpenLayers/Format/WPSCapabilities/v1_0_0.js",
                "OpenLayers/Format/WPSDescribeProcess.js",
                "OpenLayers/Format/WPSExecute.js",
                "OpenLayers/Format/XLS.js",
                "OpenLayers/Format/XLS/v1.js",
                "OpenLayers/Format/XLS/v1_1_0.js",
                "OpenLayers/Format/OGCExceptionReport.js",
                "OpenLayers/Control/GetFeature.js",
                "OpenLayers/Control/NavToolbar.js",
                "OpenLayers/Control/PanPanel.js",
                "OpenLayers/Control/Pan.js",
                "OpenLayers/Control/ZoomIn.js",
                "OpenLayers/Control/ZoomOut.js",
                "OpenLayers/Control/ZoomPanel.js",
                "OpenLayers/Control/EditingToolbar.js",
                "OpenLayers/Control/Geolocate.js",
                "OpenLayers/Symbolizer.js",
                "OpenLayers/Symbolizer/Point.js",
                "OpenLayers/Symbolizer/Line.js",
                "OpenLayers/Symbolizer/Polygon.js",
                "OpenLayers/Symbolizer/Text.js",
                "OpenLayers/Symbolizer/Raster.js",
                "OpenLayers/Lang.js",
                "OpenLayers/Lang/en.js",
                "OpenLayers/Spherical.js",
                "OpenLayers/TileManager.js",
                "OpenLayers/WPSClient.js",
                "OpenLayers/WPSProcess.js"
            ]; // etc.
        }

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="xiaoshu.js"></script>
    <style>
        #div1 {
            width: 602px;
            margin: 20px auto;
            border: 1px solid #efdede;
        }
    </style>
</head>
<body>
    <div id="div1">
        <canvas id="ca" width="600" height="600"></canvas>
    </div>
</body>
</html>
<script>
    var OC = document.getElementById('ca');
    var CG = OC.getContext('2d');
    var mx = 0, my = 0;
    var iRoat = 0;
    var ball = [];
    setInterval(function () {
        ball.push({
            x: 200,
            y: 0,
            r: 100,
            num: 0,
            starX: 200,
            starY: 0
        });
    }, 400);

    var bollet = [];


    var oImg = new Image();
    oImg.src = "img/person.png";
    oImg.onload = function () {
        //画图运动
        setInterval(function () {
            CG.clearRect(0, 0, OC.width, OC.height);

            CG.save();
            CG.translate(180, 100);
            CG.rotate(iRoat);
            CG.translate(-25, -25);
            CG.drawImage(oImg, 0, 0, 50, 50);
            CG.restore();

            CG.beginPath();
            CG.arc(200, 100, 100, -90 * Math.PI / 180, 180 * Math.PI / 180, false);
            CG.stroke();

            CG.beginPath();
            CG.arc(180, 100, 80, 180 * Math.PI / 180, 360 * Math.PI / 180, false);
            CG.stroke();

            CG.beginPath();
            CG.arc(260, 100, 10, 0, 360 * Math.PI / 180, true)
            CG.stroke();
            CG.closePath();


            for (var i = 0; i < ball.length; i  ) {
                CG.beginPath();
                CG.moveTo(ball[i].x, ball[i].y);
                CG.arc(ball[i].x, ball[i].y, 10, 0, 360 * Math.PI / 180, false);
                CG.closePath();
                CG.fill();
            }

            for (var i = 0; i < bollet.length; i  ) {
                CG.save();
                CG.beginPath();
                CG.fillStyle = 'red';
                CG.moveTo(bollet[i].startX, bollet[i].startY);
                CG.arc(bollet[i].startX, bollet[i].startY, 10, 0, 360 * Math.PI / 180, false);
                CG.closePath();
                CG.fill();
                CG.restore();
            }


        }, 1000 / 60);

        //为运动提供数据
        setInterval(function () {
            for (var i = 0; i < ball.length; i  ) {
                ball[i].num  ;
                if (ball[i].num >= 270) {
                    ball[i].r = 80;
                    ball[i].starX = 180;
                    ball[i].starY = 100;
                    ball[i].x = add(ball[i].starX, mul(Math.sin(ball[i].num * Math.PI / 180), ball[i].r));
                    ball[i].y = add(-mul(Math.cos(ball[i].num * Math.PI / 180), ball[i].r), ball[i].starY);
                    if (ball[i].num == 270   180) {
                        alert('游戏结束');
                        window.location.reload();
                    }

                }
                else if (ball[i].num < 270) {
                    ball[i].x = Math.sin(ball[i].num * Math.PI / 180) * ball[i].r   ball[i].starX;
                    ball[i].y = ball[i].r - Math.cos(ball[i].num * Math.PI / 180) * ball[i].r   ball[i].starY;
                }
            }
            for (var i = 0; i < bollet.length; i  ) {
                bollet[i].startX = bollet[i].startX   bollet[i].sX;
                bollet[i].startY = bollet[i].startY   bollet[i].sY;
            }

            for (var i = 0; i < bollet.length; i  ) {
                for (var j = 0; j < ball.length; j  ) {
                    var a = {
                        x: Math.abs( bollet[i].startX),
                        y: Math.abs(bollet[i].startY),
                        r: 10
                    };
                    var b = {
                        x: Math.abs(ball[j].x),
                        y: Math.abs(ball[j].y),
                        r: 10
                    };
                    if (afoul(a, b))
                    {
                        bollet.splice(i, 1);
                        ball.splice(j, 1);
                        break;
                    }
                }
            }

        }, 30);



    }
    OC.onmousemove = function (ev) {
        var ev = ev || event;
        var a = ev.clientX - OC.offsetLeft - 180;
        var b = ev.clientY - OC.offsetTop - 100;
        var c = Math.sqrt(Math.pow(a, 2)   Math.pow(b, 2));
        if (a >= 0 && b <= 0) {
            iRoat = Math.asin(a / c);
        } else if (a > 0) {
            iRoat = Math.acos(a / c)   90 * Math.PI / 180;
        }
        if (a <= 0 && b <= 0) {
            iRoat = Math.asin(a / c);
        } else if (a < 0) {
            iRoat = -(Math.asin(b / c)   90 * Math.PI / 180);
        }
    }
    OC.onmousedown = function (ev) {
        var ev = ev || event;
        var a = ev.clientX - OC.offsetLeft - 180;
        var b = ev.clientY - OC.offsetTop - 100;
        var c = Math.sqrt(Math.pow(a, 2)   Math.pow(b, 2));
        var iSpeed = 5;
        var sX = iSpeed * a / c;
        var sY = iSpeed * b / c;
        bollet.push({
            startX: 180,
            startY: 100,
            sX: sX,
            sY: sY
        });
    }

     //碰撞检测
    function afoul(a, b) {
        var x = Math.pow((a.x - b.x), 2);
        var y = Math.pow((a.y - b.y), 2);
        var r = Math.pow((a.r   b.r), 2); 
        if (Math.sqrt( x   y) <Math.sqrt(r)) {
            return true;
        } 
        return false;
    }


</script>

 

//加法
function add(a, b) {
    var c, d, e;
    try {
        c = a.toString().split(".")[1].length;
    } catch (f) {
        c = 0;
    }
    try {
        d = b.toString().split(".")[1].length;
    } catch (f) {
        d = 0;
    }
    return e = Math.pow(10, Math.max(c, d)), (mul(a, e)   mul(b, e)) / e;
} 
//减法
function sub(a, b) {
    var c, d, e;
    try {
        c = a.toString().split(".")[1].length;
    } catch (f) {
        c = 0;
    }
    try {
        d = b.toString().split(".")[1].length;
    } catch (f) {
        d = 0;
    }
    return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;
}
//乘法
function mul(a, b) {
    var c = 0,
        d = a.toString(),
        e = b.toString();
    try {
        c  = d.split(".")[1].length;
    } catch (f) { }
    try {
        c  = e.split(".")[1].length;
    } catch (f) { }
    return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
}
//除法
function div(a, b) {
    var c, d, e = 0,
        f = 0;
    try {
        e = a.toString().split(".")[1].length;
    } catch (g) { }
    try {
        f = b.toString().split(".")[1].length;
    } catch (g) { }
    return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));
}

lib下面的openlayers.js

于是查看libopenlayers下面的singlefile.js文件,原来这里就是真正创建OpenLayers的地方。

 

        // use "parser-inserted scripts" for guaranteed execution order
        //
        var scriptTags = new Array(jsFiles.length);
        var host = OpenLayers._getScriptLocation() "lib/";
        for (var i=0, len=jsFiles.length; i<len; i ) {
            scriptTags[i] = "<script src='" host jsFiles[i]

 

    /*
     * If window.OpenLayers isn't set when this script (OpenLayers.js) is
     * evaluated (and if singleFile is false) then this script will load
     * *all* OpenLayers scripts. If window.OpenLayers is set to an array
     * then this script will attempt to load scripts for each string of
     * the array, using the string as the src of the script.
     *
     * Example:
     * (code)
     *     <script type="text/javascript">
     *         window.OpenLayers = [
     *             "OpenLayers/Util.js",
     *             "OpenLayers/BaseTypes.js"
     *         ];
     *     </script>
     *     <script type="text/javascript" src="../lib/OpenLayers.js"></script>
     * (end)
     * In this example OpenLayers.js will load Util.js and BaseTypes.js only.
     */
    var jsFiles = window.OpenLayers; 

    /**
     * Namespace: OpenLayers
     * The OpenLayers object provides a namespace for all things OpenLayers                       
     */

 

    /**
     * Relative path of this script.
     */
    var scriptName = (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js";  //--------------------------指定当前加载的js的相对路径

 

//----------------------------------------------------根据上面解释,ol可以通过在引入openlayers.js之前,设置window.OpenLayers这个属性[],在这个属性中来使用相对路径来显示的声明要加载那些模块。下面加载时使用。

后来查看根目录下面的OpenLayers.js时候发现原来是先加载的singlefile.js这个文件

 

 

//--------------------------------------------------------下面创建一个OpenLayers对象,全局命名空间,闭包外、方法外的var变量是一个全景变量,在方法或闭包内用windows.xxx也可以声明一个全局变量,其实通过这里就可以看出来,在singlefile中创建的openlayers其实没用,在判断完加载的版本和需要加载的插件js后,在下面会重新创建一个全局域的OpenLayers,这个全局域的OpenLayers和singlefile中定义的代码是一样的。---------------

 

//--------------------------------------------------------如果不是压缩模式,并且没有指定加载的js文件,则默认加载如下js通过document.write

//新初始化OpenLayers所以,先把值记录下来。

我最开始从lib里面的openlayers.js看,对ol的初始化顺序很困惑,因为最开始就判断OpenLayers这个对象,明明没有地方创建

(function() {
    /**
     * Before creating the OpenLayers namespace, check to see if
     * OpenLayers.singleFile is true.  This occurs if the
     * OpenLayers/SingleFile.js script is included before this one - as is the
     * case with old single file build profiles that included both
     * OpenLayers.js and OpenLayers/SingleFile.js.
     */
    var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);

分分快三计划 1 

//----------------这里首先判断是否singlefile.js已经执行过了,并且通过Openlayers.singlefile来判断加载的那个openlyers.js文件(压缩和非压缩),

/**
* Constant: VERSION_NUMBER
*
* This constant identifies the version of OpenLayers.
*
* When asking questions or reporting issues, make sure to include the output of
*     OpenLayers.VERSION_NUMBER in the question or issue-description.
*/
OpenLayers.VERSION_NUMBER="Release 2.13.1";

/**
     * OpenLayers.singleFile is a flag indicating this file is being included
     * in a Single File Library build of the OpenLayers Library.
     *
     * When we are *not* part of a SFL build we dynamically include the
     * OpenLayers library code.
     *
     * When we *are* part of a SFL build we do not dynamically include the
     * OpenLayers library code as it will be appended at the end of this file.                      

 

OK,回到lib下面的openlayers.js,看看openLayers是如何初始化的

下载2.13.1。解压缩。根据readme解释,openlayers.js是一个压缩库,.light是一个图像显示的简化库,mobile顾名思义应该是应对移动设备的库。build里面有py写的打包工具,可以配置生成openlayers.js。

    window.OpenLayers = {                                                           
        /**
         * Method: _getScriptLocation
         * Return the path to this script. This is also implemented in
         * OpenLayers/SingleFile.js
         *
         * Returns:
         * {String} Path to this script
         */
        _getScriptLocation: (function() {
            var r = new RegExp("(^|(.*?\/))(" scriptName ")(\?|$)"),
                s = document.getElementsByTagName('script'),
                src, m, l = "";
            for(var i=0, len=s.length; i<len; i ) {
                src = s[i].getAttribute('src');
                if(src) {
                    m = src.match(r);
                    if(m) {
                        l = m[1];
                        break;
                    }
                }
            }
            return (function() { return l; });
        })(),
        /**
         * APIProperty: ImgPath
         * {String} Set this to the path where control images are stored, a path 
         * given here must end with a slash. If set to '' (which is the default)
         * OpenLayers will use its script location "img/".
         *
         * You will need to set this property when you have a singlefile build of
         * OpenLayers that either is not named "OpenLayers.js" or if you move
         * the file in a way such that the image directory cannot be derived from
         * the script location.
         *
         * If your custom OpenLayers build is named "my-custom-ol.js" and the images
         * of OpenLayers are in a folder "/resources/externalol" a correct
         * way of including OpenLayers in your HTML would be:
         *
         * (code)
         *   <script src="/path/to/my-custom-ol.js" type="text/javascript"></script>
         *   <script type="text/javascript">
         *      // tell OpenLayers where the control images are
         *      // remember the trailing slash
         *      OpenLayers.ImgPath = "/resources/externalol/";
         *   </script>
         * (end code)
         *
         * Please remember that when your OpenLayers script is not named
H5——简易马祖【分分快三计划】。         * "OpenLayers.js" you will have to make sure that the default theme is
         *H5——简易马祖【分分快三计划】。 loaded into the page by including an appropriate <link>-tag,
         * e.g.:
         *
         * (code)
         *   <link rel="stylesheet" href="/path/to/default/style.css"  type="text/css">
         * (end code)
         */
        ImgPath : ''
    };

分分快三计划 2

 

 

  •                                    "'></script>";
            }
            if (scriptTags.length > 0) {
                document.write(scriptTags.join(""));
            }
        }
    })();

 

分分快三计划 3

分分快三计划 4

 

 

其实singlefile.js的逻辑已经被弃用了,因为在openlayers.js下面又创建了一遍openlayers,这段代码其实没什么实际感觉。

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划