做小工具的时候用到了eui

以前写了个列表练手:https://blog.csdn.net/wulong710/article/details/89634813现在用wing自带的工具生成exml格式的EUI皮肤。例子在:https://download.csdn.net/download/wulong710/11389716下载例子要5分,那是CSDN自动填写的,我是要免费的,但是不知道哪里改分数。还有对应...
摘要由CSDN通过智能技术生成

以前写了个列表练手:https://blog.csdn.net/wulong710/article/details/89634813

现在用wing自带的工具生成exml格式的EUI皮肤。

例子在:https://download.csdn.net/download/wulong710/11389716

下载例子要5分,那是CSDN自动填写的,我是要免费的,但是不知道哪里改分数。

还有对应看看皮肤的文档,效果更好:http://developer.egret.com/cn/github/egret-docs/extension/EUI/outline/introduction/index.html

代码如下:

Main.ts

//
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//

class Main extends egret.DisplayObjectContainer {
    private wayCanvas: egret.DisplayObjectContainer = null;

    public constructor() {
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
    }

    private onAddToStage(event: egret.Event) {

        egret.lifecycle.addLifecycleListener((context) => {
            // custom lifecycle plugin

            context.onUpdate = () => {

            }
        })

        egret.lifecycle.onPause = () => {
            egret.ticker.pause();
        }

        egret.lifecycle.onResume = () => {
            egret.ticker.resume();
        }

        //inject the custom material parser
        //注入自定义的素材解析器
        let assetAdapter = new AssetAdapter();
        egret.registerImplementation("eui.IAssetAdapter", assetAdapter);
        egret.registerImplementation("eui.IThemeAdapter", new ThemeAdapter());

        this.runGame().catch(e => {
            console.log(e);
        })



    }

    private async runGame() {
        await this.loadResource()
        this.createGameScene();
        const result = await RES.getResAsync("description_json")

        const userInfo = await platform.getUserInfo();
        console.log(userInfo);

    }

    private async loadResource() {
        try {
            const loadingView = new LoadingUI();
            this.stage.addChild(loadingView);
            await RES.loadConfig("resource/default.res.json", "resource/");
            await this.loadTheme();
            await RES.loadGroup("preload", 0, loadingView);
            this.stage.removeChild(loadingView);
        }
        catch (e) {
            console.error(e);
        }
    }

    private loadTheme() {
        return new Promise((resolve, reject) => {
            // load skin theme configuration file, you can manually modify the file. And replace the default skin.
            //加载皮肤主题配置文件,可以手动修改这个文件。替换默认皮肤。
            let theme = new eui.Theme("resource/default.thm.json", this.stage);
            theme.addEventListener(eui.UIEvent.COMPLETE, () => {
                resolve();
            }, this);

        })
    }

    private textfield: egret.TextField;

    /**
     * 创建游戏场景
     * Create a game scene
     */
    private createGameScene() {

        let bgColor: egret.Shape = new egret.Shape();
        bgColor.graphics.beginFill(0x000001, 1);
        bgColor.graphics.drawRect(0, 0, GDatas.getStageWidth(), GDatas.getStageHeight());
        bgColor.graphics.endFill();
        this.addChild(bgColor);

        let edgeColor: egret.Shape = new egret.Shape();
        edgeColor.graphics.lineStyle(4, 0xff0000);
        edgeColor.graphics.drawRect(
            this.getStartX(),
            this.getStartY(),
            GDatas.getVisibleWidth(),
            GDatas.getVisibleHeight());
        edgeColor.graphics.endFill();
        this.addChild(edgeColor);

        this.wayCanvas = new egret.DisplayObjectContainer();
        this.wayCanvas.x = 0;
        this.wayCanvas.y = 0;
        this.wayCanvas.width = GDatas.getStageWidth();
        this.wayCanvas.height = GDatas.getStageHeight();
        this.addChild(this.wayCanvas);


        let nameList: WayNameList = new WayNameList();
        nameList.x = 50;
        nameList.y = 50;
        nameList.alpha = 1.0;
        this.addChild(nameList);

        let target: Main = this;
        egret.callLater(function () {

            nameList.init(function (ids: number[]) {
                target.wayCanvas.removeChildren();
                ids.forEach(function (id: number) {
                    target.drawWay(id, 0x00ff00);
                });
            }, target);
        }, target);

    }

    private getStartX(): number {
        return (GDatas.getStageWidth() - GDatas.getVisibleWidth()) / 2;
    }

    private getStartY(): number {
        return (GDatas.getStageHeight() - GDatas.getVisibleHeight()) / 2;
    }

    private getRealX(x: number): number {
        return this.getStartX() + x;
    }

    private getRealY(y: number): number {
        return this.getStartY() + y;
    }

    public drawWay(id: number, color: number): void {
        let way: AudiWay = WayUtil.instance().getAudiWay(id, 40);
        if (!way) {
            return;
        }

        if (way.points.length > 1) {
            let fromP: OnePoint = way.points[0];
            let line: egret.Shape = new egret.Shape();
            line.graphics.lineStyle(2, color);
            line.graphics.moveTo(this.getRealX(fromP.x), this.getRealY(fromP.y));
            for (let pIndex = 1; pIndex < way.points.length; pIndex++) {
                let toP: OnePoint = way.points[pIndex];
                line.graphics.lineTo(this.getRealX(toP.x), this.getRealY(toP.y));
            }

            line.graphics.endFill();
            this.wayCanvas.addChild(line);

            let nLabel: eui.Label = new eui.Label();
            nLabel.text = String(id);
            nLabel.textColor = 0xfffffe;
            nLabel.size = 26;
            let x = fromP.x + nLabel.$getContentBounds().width / 2;
            let y = fromP.y + nLabel.$getContentBounds().height - 10;
            nLabel.x = this.getRealX(x);
            nLabel.y = this.getRealY(y);
            this.wayCanvas.addChild(nLabel);
        }

        for (let pIndex = 0; pIndex < way.points.length; pIndex++) {
            let point: OnePoint = way.points[pIndex];
            let pd: egret.Shape = new egret.Shape();
            let pC: number = 0x00ff00;
            if (pIndex === 0) {
                pC = 0x0000ff;
            } else if (pIndex === way.points.length - 1) {
                pC = 0xff0000;
            }

            pd.graphics.beginFill(pC, 1);
            pd.graphics.drawCircle(0, 0, 6);
            pd.graphics.endFill();
            pd.x = this.getRealX(point.x);
            pd.y = this.getRealY(point.y);
            this.wayCanvas.addChild(pd);

            if (pIndex === 0) {
                continue;
            }

            let nLabel: eui.Label = new eui.Label();
            nLabel.text = String(pIndex);
            nLabel.textColor = 0x00f000;
            nLabel.size = 20;
            let x = pd.x + nLabel.$getContentBounds().width / 2;
            let y = pd.y + nLabel.$getContentBounds().height - 10;
            nLabel.x = x;
            nLabel.y = y;
            this.wayCanvas.addChild(nLabel);
        }
    }
}

AssetAdapter.ts

//
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//


class AssetAdapter implements eui.IAssetAdapter {
    /**
     * @language zh_CN
     * 解析素材
     * @param source 待解析的新素材标识符
     * @param compFunc 解析完成回调函数,示例:callBack(content:any,source:string):void;
     * @param thisObject callBack的 this 引用
     */
    public getAsset(source: string, compFunc:Function, thisObject: any): void {
        function onGetRes(data: any): void {
            compFunc.call(thisObject, data, source);
        }
        if (RES.hasRes(source)) {
            let data = RES.getRes(source);
            if (data) {
                onGetRes(data);
            }
            else {
                RES.getResAsync(source, onGetRes, this);
            }
        }
        else {
            RES.getResByUrl(source, onGetRes, this, RES.ResourceItem.TYPE_IMAGE);
        }
    }
}

ThemeAdapter.ts

//
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//


class ThemeAdapter implements eui.IThemeAdapter {

    /**
     * 解析主题
     * @param url 待解析的主题url
     * @param onSuccess 解析完成回调函数,示例:compFunc(e:egret.Event):void;
     * @param onError 解析失败回调函数,示例:errorFunc():void;
     * @param thisObject 回调的this引用
     */
    public getTheme(url: string, onSuccess: Function, onError: Function, thisObject: any): void {
        function onResGet(e: string): void {
            onSuccess.call(thisObject, e);
        }
        function onResError(e: RES.ResourceEvent): void {
            if (e.resItem.url == url) {
                RES.removeEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR, onResError, null);
                onError.call(thisObject);
            }
        }

        if (typeof generateEUI !== 'undefined') {
            egret.callLater(() => {
                onSuccess.call(thisObject, generateEUI);
            }, this);
        }
        else if (typeof generateEUI2 !== 'undefined') {
            RES.getResByUrl("resource/gameEui.json", (data, url) => {
                window["JSONParseClass"]["setData"](data);
                egret.callLater(() => {
                    onSuccess.call(thisObject, generateEUI2);
                }, this);
            }, this, RES.ResourceItem.TYPE_JSON);
        }
        else if (typeof generateJSON !== 'undefined') {
            if (url.indexOf(".exml") > -1) {
                let dataPath = url.split("/");
                dataPath.pop();
                let dirPath = dataPath.join("/") + "_EUI.json";
                if (!generateJSON.paths[url]) {
                    RES.getResByUrl(dirPath, (data) => {
                        window["JSONParseClass"]["setData"](data);
                        egret.callLater(() => {
                            onSuccess.call(thisObject, generateJSON.paths[url]);
                        }, this);
                    }, this, RES.ResourceItem.TYPE_JSON);
                } else {
                    egret.callLater(() => {
                        onSuccess.call(thisObject, generateJSON.paths[url]);
                    }, this);
                }
            }
            else {
                egret.callLater(() => {
                    onSuccess.call(thisObject, generateJSON);
                }, this);
            }
        }
        else {
            RES.addEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR, onResError, null);
            RES.getResByUrl(url, onResGet, this, RES.ResourceItem.TYPE_TEXT);
        }
    }
}

declare var generateEUI: { paths: string[], skins: any }
declare var generateEUI2: { paths: string[], skins: any }
declare var generateJSON: { paths: string[], skins: any }

LoadingUI.ts

//
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//

class LoadingUI extends egret.Sprite implements RES.PromiseTaskReporter {

    public constructor() {
        super();
        this.createView();
    }

    private textField: egret.TextField;

    private createView(): void {
        this.textField = new egret.TextField();
        this.addChild(this.textField);
        this.textField.y = 300;
        this.textField.width = 480;
        this.textField.height = 100;
        this.textField.textAlign = "center";
    }

    public onProgress(current: number, total: number): void {
        this.textField.text = `Loading...${current}/${total}`;
    }
}

GDatas.ts

/**
 * @description 一些常用的乱七八糟的东西先放在这里
 * @author (pdh)
 * @date 2018-10-31
 * @class GDatas
 */
class GDatas {

    public static INDEX_NOT_FOUND: number = -1;//没找到

    public static getStageHeight(): number {
        let height = egret.MainContext.instance.stage.stageHeight;
        return height;
    }

    public static getStageWidth(): number {
        let width = egret.MainContext.instance.stage.stageWidth;
        return width;
    }

    public static getVisibleWidth(): number {
        return 1136;
    }

    public static getVisibleHeight(): number {
        return 640;
    }
}

OneWay.ts

/**
 * @description 路径上的一个点坐标
 * @author (pdh)
 * @date 2018-10-31
 * @class OnePoint
 */
class OnePoint {
	x: number = 0;
	y: number = 0;
	z: number = 0;
	timeScale: number = 1;

	public constructor(x: number, y: number, z: number, timeScale: number) {
		this.x = x;
		this.y = y;
		this.z = z;
		this.timeScale = timeScale;
	}

	/**
	 * @description 
	 * @author (pdh)
	 * @date 2019-01-29
	 * @returns {string}
	 * @memberof OnePoint
	 */
	public toString(): string {
		let buf: string[] = [];
		buf.push("OnePoint{");
		buf.push("x:".concat(String(this.x)));
		buf.push(", y:".concat(String(this.y)));
		buf.push(", z:".concat(String(this.z)));
		buf.push("}");
		return buf.join("");
	}
}


/**
 * @description 一条贝塞尔路径上的各个点
 * @author (pdh)
 * @date 2018-10-31
 * @class OneWay
 */
class OneWay {

	name: string;
	duration: number;
	x: number = 0;
	y: number = 0;
	z: number = 0;
	private children: OnePoint[] = [];//路径上的各个点
	private coordinates: any[] = [];//从XML转换后的真实坐标,滑行时的坐标 

	public constructor(way: string,
		duration: string,
		x: string,
		y: string,
		z: string) {

		this.name = way;
		this.duration = parseFloat(duration);
		this.x = parseFloat(x);
		this.y = parseFloat(y);
		this.z = parseFloat(z);
	}

	/**
	 * @description 解析出路径上一个点,加到路径容器中。
	 * @author (pdh)
	 * @date 2018-10-31
	 * @param {string} x 不是真实像素。  真实像素 = ((手机屏幕宽度*x) + 手机屏幕宽度)* 0.5;
	 * @param {string} y
	 * @param {string} z
	 * @param {string} timeScale
	 * @memberof OneWay
	 */
	public addChildPoint(x: string,
		y: string,
		z: string,
		timeScale: string) {
		let rx = parseFloat(x);
		let ry = parseFloat(y);
		let rz = parseFloat(z);
		let rTime = parseFloat(timeScale);
		this.children[this.children.length] = new OnePoint(rx, ry, rz, rTime);
	}

	/**
	 * @description 开始滑行前的原始坐标。没什么用
	 * @author (pdh)
	 * @date 2018-10-31
	 * @returns {number}
	 * @memberof OneWay
	 */
	public getOriginalX(): number {
		let rw = GDatas.getStageWidth() / 2;
		let x: number = rw + this.x;
		return x;
	}

	/**
	 * @description 开始滑行前的原始坐标。没什么用
	 * @author (pdh)
	 * @date 2018-10-31
	 * @returns {number}
	 * @memberof OneWay
	 */
	public getOriginalY(): number {
		let rh = GDatas.getStageHeight() / 2;
		let y: number = rh - this.y;
		return y;
	}


	/**
	 * @description waypoints对应的半径是540
	 * @author (pdh)
	 * @date 2019-01-29
	 * @returns {number}
	 * @memberof OneWay
	 */
	public getRadius(): number {
		return 540;
	}


	//从XML转换后的真实坐标,滑行时的坐标
	public getCoordinates(): any[] {
		if (this.coordinates.length) {
			return this.coordinates;
		}

		let rw = GDatas.getStageWidth() / 2;
		let rh = GDatas.getStageHeight() / 2;
		let radius: number = this.getRadius();

		let pointToXY = function (point: OnePoint): {} {
			let vX = radius * point.x + rw;
			let vY = rh - (radius * point.y);
			// let a = { x: vX, y: vY, timeScale: point.timeScale };
			let a = { x: vX, y: vY };
			return a;
		}

		let roadX: number = this.getOriginalX();
		let roadY: number = this.getOriginalY();
		// this.coordinates.push({ x: roadX, y: roadY, timeScale: 1 });
		this.coordinates.push({ x: roadX, y: roadY });

		for (let i = 0; i < this.children.length; i++) {
			let before: OnePoint = this.children[i];
			let after: {} = pointToXY(before);
			this.coordinates.push(after);
		}
		return this.coordinates;
	}


	/**
	 * @description 调试用
	 * @author (pdh)
	 * @date 2019-01-29
	 * @returns {string}
	 * @memberof OneWay
	 */
	public toString(): string {
		let buf: string[] = [];
		buf.push("OneWay{");
		buf.push("name:".concat(this.name));
		buf.push(", duration:".concat(String(this.duration)));
		buf.push(", x:".concat(String(this.x)));
		buf.push(", y:".concat(String(this.y)));
		buf.push(", z:".concat(String(this.z)));
		buf.push(", :".concat(String(this.x)));
		buf.push("\n    children{");
		for (let son of this.children) {
			buf.push("\n        ")
			buf.push(son.toString());
			buf.push(", ");
		}

		buf.push("}");
		buf.push("\n    coordinates{");
		for (let k in this.coordinates) {
			let map = this.coordinates[k];
			buf.push("\n        [");
			for (let subK in map) {
				let subV = map[subK];
				buf.push(String(subK));
				buf.push(":".concat(String(subV)));
				buf.push(", ");
			}
			buf.push("]");
		}
		buf.push("}");
		return buf.join("");
	}
}

TypeDefine.ts

class ResImageDefine {
    public static release_png: string = "release_png";
    public static focus_png: string = "focus_png";
}

WAY_paths.ts

let WAY_paths: string[] = [
    "1|黄金鱼1|-159.29,200.75;223.27,185.96;601.68,224.32;995.79,363.91;1452.43,419.84;|-159.29,200.75,-100.20,197.76;48.83,246.04,363.31,137.73;529.00,178.48,738.74,310.75;814.89,257.60,1154.64,457.26;1498.98,456.41,1452.43,419.84;|40.00;40.00;40.00;40.00;",
    "2|黄金鱼2|1271.75,142.05;930.26,121.25;570.30,259.91;293.42,532.61;-202.68,599.63;|1271.75,142.05,1212.70,138.45;1049.78,111.08,833.80,129.46;651.55,187.26,441.09,375.46;427.71,467.90,106.22,622.81;-143.84,593.41,-202.68,599.63;|40.00;40.00;40.00;40.00;",
    "3|黄金鱼3|1255.60,313.07;768.74,204.45;256.50,243.74;-195.75,511.81;|1255.60,313.07,1197.16,303.83;956.99,216.23,584.15,192.89;366.13,207.76,122.67,287.65;-145.02,481.32,-195.75,511.81;|40.00;40.00;40.00;",
    "4|黄金鱼4|-172.21,207.69;180.35,310.76;614.14,306.13;1047.94,197.52;1671.85,276.09;|-172.21,207.69,-117.28,229.69;148.05,303.82,285.33,333.28;503.39,324.62,733.56,286.20;893.34,202.14,1177.18,193.65;1613.88,264.26,1671.85,276.09;|40.00;40.00;40.00;40.00;",
    "5|黄金鱼5|1280.98,514.12;916.42,423.99;563.38,500.26;108.82,398.57;-224.37,420.76;|1280.98,514.12,1225.01,494.92;1111.84,407.34,807.97,433.24;736.53,490.29,362.64,511.81;258.80,419.37,-15.63,381.31;-165.34,416.64,-224.37,420.76;|40.00;40.00;40.00;40.00;",
    "6|黄金鱼6|-163.45,463.28;173.43,493.33;611.84,370.84;1001.79,347.73;1359.43,172.09;|-163.45,463.28,-104.55,468.88;67.29,502.57,310.30,481.40;484.93,380.09,707.20,363.90;876.60,384.73,1142.54,306.13;1306.66,198.88,1359.43,172.09;|40.00;40.00;40.00;40.00;",
    "7|黄金鱼7|-314.35,233.10;131.90,229.87;637.22,114.32;1057.17,336.18;1084.85,851.53;|-314.35,233.10,-258.50,213.55;-48.08,303.82,186.64,207.38;376.42,110.17,782.59,116.63;992.98,213.82,1128.70,472.53;1141.24,869.47,1084.85,851.53;|40.00;40.00;40.00;40.00;",
    "8|黄金鱼8|1250.99,-54.38;969.48,144.36;840.27,440.17;549.54,583.45;141.13,447.10;-126.53,-56.70;|1250.99,-54.38,1192.78,-43.74;1038.71,63.48,870.73,259.76;891.29,367.56,752.59,564.97;608.70,583.45,397.25,583.45;225.56,522.56,-8.85,313.07;-92.78,-8.02,-126.53,-56.70;|40.00;40.00;40.00;40.00;40.00;",
    "9|黄金鱼9|-205.44,126.34;295.72,142.05;673.21,363.45;1496.96,686.06;|-205.44,126.34,-147.00,135.58;91.11,72.78,459.55,197.52;556.64,308.14,892.41,467.44;1441.58,665.21,1496.96,686.06;|40.00;40.00;40.00;",
    "10|黄金鱼10|1293.45,136.51;774.74,119.86;413.40,246.05;200.19,399.96;-218.83,561.74;|1293.45,136.51,1234.31,138.32;911.08,107.71,665.83,129.57;547.23,130.50,358.97,293.04;280.95,330.63,113.66,474.25;-161.60,546.69,-218.83,561.74;|40.00;40.00;40.00;40.00;",
    "11|上下走向11|56.68,-79.34;174.82,66.71;337.26,454.96;597.53,717.49;|56.68,-79.34,93.92,-33.30;145.54,15.22,250.50,199.83;243.12,308.91,369.35,504.75;555.84,675.44,597.53,717.49;|55.00;55.00;55.00;",
    "12|上下走向12|99.13,-83.04;361.25,118.48;503.39,453.11;708.29,706.40;|99.13,-83.04,142.19,-42.40;259.03,-0.50,429.55,197.98;448.09,339.27,536.62,521.52;671.04,660.36,708.29,706.40;|55.00;55.00;55.00;",
    "13|上下走向13|193.28,-64.55;516.31,75.96;630.76,412.44;826.43,719.34;|193.28,-64.55,250.39,-49.08;440.87,11.20,606.76,153.61;586.46,290.42,672.45,527.29;827.71,660.10,826.43,719.34;|55.00;55.00;55.00;",
    "14|上下走向14|1090.39,711.95;963.02,560.35;972.25,262.69;898.42,31.59;715.67,-92.29;|1090.39,711.95,1052.30,666.61;988.87,639.84,925.18,443.93;981.48,345.88,959.76,150.06;936.27,77.13,860.56,-13.96;769.39,-67.45,715.67,-92.29;|55.00;55.00;55.00;55.00;",
    "15|上下走向15|1204.84,632.45;857.81,490.09;576.49,305.21;227.61,166.18;-102.07,0.15;|1204.84,632.45,1156.17,598.75;931.36,583.59,761.82,368.07;668.35,390.23,464.63,201.68;310.69,205.67,118.70,114.42;-50.39,-59.01,-102.07,0.15;|55.00;55.00;55.00;55.00;",
    "16|上下走向16|1239.92,525.22;896.57,443.87;573.54,362.52;215.43,325.55;-249.75,236.80;|1239.92,525.22,1199.20,482.22;992.56,497.49,787.36,382.87;669.52,395.80,443.64,317.48;311.42,332.95,-26.94,306.89;-172.22,238.65,-249.75,236.80;|55.00;55.00;55.00;55.00;",
    "17|左右|1228.84,44.53;883.64,179.49;381.56,466.06;-174.06,565.89;|1228.84,44.53,1183.21,82.25;977.79,99.99,741.09,299.87;545.66,386.10,244.96,532.61;-91.00,501.18,-174.06,565.89;|55.00;55.00;55.00;",
    "18|上下走向18|771.05,-75.65;534.77,92.60;427.71,436.47;104.67,684.22;|771.05,-75.65,725.54,-37.78;599.38,3.85,449.69,209.47;521.85,286.72,303.30,634.37;151.65,648.19,104.67,684.22;|55.00;55.00;55.00;",
    "19|上下走向19|-117.30,394.87;156.82,228.48;560.15,248.36;927.49,232.18;1230.68,88.90;|-117.30,394.87,-132.45,337.59;53.45,241.43,235.66,218.61;481.46,249.69,697.21,246.05;831.04,241.43,1009.76,224.29;1183.89,125.17,1230.68,88.90;|55.00;55.00;55.00;55.00;",
    "20|上下走向20|484.93,710.10;464.63,482.69;673.21,273.78;948.26,144.36;1042.40,-66.40;|484.93,710.10,479.66,651.07;440.53,556.61,494.16,392.10;521.85,356.98,803.10,202.39;883.65,222.01,1012.60,67.02;1042.93,-7.14,1042.40,-66.40;|55.00;55.00;55.00;55.00;",
    "21|左右21|-105.76,179.03;164.20,183.65;491.85,255.29;842.58,474.84;1409.74,593.62;|-105.76,179.03,-46.61,180.04;105.44,176.73,281.88,197.52;392.19,215.36,641.83,315.38;674.14,393.95,1026.92,563.36;1352.32,579.33,1409.74,593.62;|55.00;55.00;55.00;55.00;",
    "22|左右22|-103.46,183.65;210.35,350.04;526.46,393.95;983.33,393.95;1253.30,574.21;|-103.46,183.65,-51.17,211.38;48.14,296.78,351.10,396.26;358.02,387.02,720.18,401.93;799.17,352.69,1158.69,433.24;1208.80,535.16,1253.30,574.21;|55.00;55.00;55.00;55.00;",
    "23|左右23|-103.46,185.96;510.31,333.87;1057.17,481.77;1262.52,585.77;|-103.46,185.96,-45.93,199.82;452.89,319.57,567.73,348.16;889.56,415.40,1156.38,521.06;1210.45,557.64,1262.52,585.77;|55.00;55.00;55.00;",
    "24|左右24|1271.75,354.66;745.67,114.32;145.74,181.34;-101.15,645.85;|1271.75,354.66,1217.92,330.07;1043.21,170.70,574.92,81.97;288.80,17.26,-24.92,377.08;-11.62,649.09,-101.15,645.85;|55.00;55.00;55.00;",
    "25|左右25|1237.14,162.85;732.28,142.97;376.02,234.03;108.82,442.49;-154.22,497.02;|1237.14,162.85,1178.00,161.19;872.34,127.39,586.92,159.15;471.67,170.89,274.49,301.05;201.72,392.96,16.07,491.94;-96.54,483.84,-154.22,497.02;|55.00;55.00;55.00;55.00;",
    "26|左右26|1237.14,181.34;1017.94,350.04;717.06,523.84;401.40,471.14;106.06,276.10;-266.82,234.50;|1237.14,181.34,1190.23,217.45;1121.35,276.68,962.56,389.33;894.15,480.20,628.91,545.55;485.98,514.15,251.42,394.88;158.62,295.99,-115.00,192.43;-190.68,257.14,-266.82,234.50;|55.00;55.00;55.00;55.00;55.00;",
    "27|左右27|-150.99,554.80;632.60,465.59;1034.09,255.29;1158.69,-130.65;|-150.99,554.80,-91.85,553.08;348.33,534.46,738.68,439.89;935.34,379.16,1137.53,125.53;1140.49,-74.26,1158.69,-130.65;|55.00;55.00;55.00;",
    "28|左右28|-89.61,412.44;310.49,303.82;804.74,213.23;1273.60,85.20;|-89.61,412.44,-30.46,413.93;187.42,349.86,390.79,273.78;700.90,305.21,921.73,109.60;1271.30,126.80,1273.60,85.20;|55.00;55.00;55.00;",
    "29|左右29|-86.38,628.75;256.96,353.74;675.52,195.67;1245.82,117.19;|-86.38,628.75,-27.28,631.59;54.83,405.04,482.51,296.49;416.93,205.82,946.41,185.04;1191.92,44.53,1245.82,117.19;|55.00;55.00;55.00;",
    "30|左右30|1207.15,70.41;981.02,95.83;759.51,396.26;478.01,576.52;101.90,675.90;|1207.15,70.41,1148.05,73.30;1052.55,63.48,882.16,140.55;895.65,232.18,671.52,502.31;568.00,541.86,422.78,597.79;159.11,660.78,101.90,675.90;|55.00;55.00;55.00;55.00;",
    "31|鱼群31|1206.68,555.71;-89.15,555.71;|1206.68,555.71,1147.52,555.71;-29.99,555.71,-89.15,555.71;|68.00;",
    "32|鱼群32|1246.37,497.95;-89.61,497.95;|1246.37,497.95,1187.21,497.95;-76.23,495.64,-89.61,497.95;|68.00;",
    "33|鱼群33|1205.76,440.64;-90.08,439.25;|1205.76,440.64,1146.60,440.33;-30.91,439.56,-90.08,439.25;|68.00;",
    "34|鱼群34|1206.68,380.56;-91.92,380.56;|1206.68,380.56,1147.52,380.36;-32.75,380.77,-91.92,380.56;|68.00;",
    "35|鱼群35|1248.22,320.02;-92.38,320.02;|1248.22,320.02,1189.05,319.50;-33.22,320.53,-92.38,320.02;|57.00;",
    "36|鱼群36|1208.07,262.72;-91.00,262.72;|1208.07,262.72,1148.90,262.72;-31.83,262.72,-91.00,262.72;|68.00;",
    "37|鱼群37|1207.15,203.11;-89.15,203.11;|1207.15,203.11,1147.98,203.62;-29.99,202.60,-89.15,203.11;|68.00;",
    "38|鱼群38|1248.69,145.83;-94.69,145.73;|1248.69,145.83,1189.52,145.74;-35.52,145.82,-94.69,145.73;|68.00;",
    "39|鱼群39|1208.08,84.72;-94.69,84.62;|1208.08,84.72,1148.91,84.63;-35.52,84.71,-94.69,84.62;|57.00;",
    "40|0040|627.07,674.97;802.43,610.26;1053.47,364.37;1053.47,68.56;863.34,-92.29;|627.07,674.97,682.58,654.48;708.29,671.27,911.85,539.35;998.10,479.00,1098.45,271.26;1101.04,153.08,996.25,-33.12;908.54,-54.05,863.34,-92.29;|55.00;55.00;55.00;55.00;",
    "41|0041|566.15,682.37;763.66,567.74;876.27,220.16;551.38,-71.95;|566.15,682.37,617.34,652.66;687.98,654.63,833.35,487.73;892.88,379.16,849.72,-33.88;594.06,-30.91,551.38,-71.95;|55.00;55.00;55.00;",
    "42|0042|651.06,702.70;267.11,582.53;64.06,355.13;100.98,66.71;361.25,-73.80;|651.06,702.70,594.30,686.00;376.86,654.35,128.67,491.94;79.07,412.45,34.53,242.35;40.06,164.70,158.08,-25.14;309.17,-45.68,361.25,-73.80;|55.00;55.00;55.00;55.00;",
    "43|0043|658.45,691.61;424.01,504.88;368.64,249.74;663.98,24.19;1081.16,-31.28;|658.45,691.61,612.14,654.72;484.93,569.59,383.42,461.76;347.66,349.08,409.25,57.47;566.15,50.07,709.73,12.09;1022.51,-23.48,1081.16,-31.28;|55.00;55.00;55.00;55.00;",
    "44|0044|-76.23,18.64;269.88,118.48;664.90,200.75;956.56,326.47;1282.37,561.27;|-76.23,18.64,-17.27,23.63;210.76,116.20,365.87,122.18;543.15,190.59,731.36,206.30;901.18,259.91,1008.36,388.72;1278.67,451.73,1282.37,561.27;|55.00;55.00;55.00;55.00;",
    "45|0045|-150.07,382.85;217.27,482.69;662.13,449.42;1018.40,405.04;1263.91,377.32;|-150.07,382.85,-83.61,425.38;86.21,495.64,314.88,473.05;478.69,436.14,815.35,460.51;835.66,403.20,1137.24,406.24;1204.74,376.95,1263.91,377.32;|55.00;55.00;55.00;55.00;",
    "46|0046|1234.37,434.62;1105.16,283.02;870.73,231.26;669.52,368.07;372.33,188.73;141.59,279.33;-94.69,194.28;|1234.37,434.62,1184.70,402.43;1162.38,298.08,1047.94,267.96;1020.25,214.62,757.32,243.88;776.59,369.92,510.11,365.31;466.47,181.34,252.82,198.12;215.43,286.72,56.78,270.83;-37.43,209.21,-94.69,194.28;|55.00;55.00;55.00;55.00;55.00;55.00;",
    "47|0047|-113.15,632.45;195.12,467.91;512.62,258.99;870.73,172.09;1208.53,-156.99;|-113.15,632.45,-13.47,613.96;-35.62,538.16,337.78,424.47;350.18,344.03,604.14,211.07;782.13,229.41,991.16,94.19;1187.22,-101.71,1208.53,-156.99;|55.00;55.00;55.00;55.00;",
    "48|0048|-144.53,251.59;353.87,295.96;850.42,294.12;1066.39,408.74;1393.12,449.42;|-144.53,251.59,-85.47,255.20;294.77,293.12,412.97,298.81;666.20,251.54,970.41,321.85;972.25,375.46,1122.19,428.46;1334.41,442.07,1393.12,449.42;|55.00;55.00;55.00;55.00;",
    "49|0049|1193.76,-38.67;813.50,81.50;584.61,386.56;267.11,527.07;-137.15,687.91;|1193.76,-38.67,1136.49,-23.79;922.41,2.00,682.43,177.18;682.44,308.91,465.78,480.87;336.50,476.10,156.35,608.41;-82.11,666.16,-137.15,687.91;|55.00;55.00;55.00;55.00;",
    "50|0050|1236.22,523.37;795.04,601.02;449.86,589.92;222.81,440.17;-157.45,356.97;|1236.22,523.37,1177.06,524.13;916.88,580.68,736.68,610.76;553.23,623.20,354.81,559.33;278.83,459.25,130.51,408.74;-100.57,373.29,-157.45,356.97;|55.00;55.00;55.00;55.00;",
    "51|0051|-65.15,327.40;126.82,173.94;490.47,405.04;909.49,157.30;1243.61,490.09;|-65.15,327.40,25.30,336.64;-9.21,196.24,329.87,140.67;320.64,379.16,705.88,437.88;680.09,178.19,1132.85,136.97;1195.45,455.66,1243.61,490.09;|60.00;60.00;60.00;60.00;",
    "52|0052|-162.99,506.27;158.67,461.43;300.34,217.38;633.07,122.18;933.96,343.11;1233.45,514.59;|-162.99,506.27,-104.29,498.87;80.80,530.29,261.11,370.84;212.48,348.11,364.95,121.25;549.54,91.21,809.91,187.75;743.82,219.24,1059.68,425.02;1181.76,390.72,1233.45,514.59;|60.00;60.00;60.00;60.00;60.00;",
    "53|0053|1217.76,27.89;1044.25,142.51;896.57,477.15;521.85,519.67;143.43,288.57;-70.69,521.52;|1217.76,27.89,1186.69,78.32;1119.61,32.31,951.95,277.48;1044.25,312.60,832.87,548.13;671.63,607.34,379.71,436.47;357.56,260.84,-26.66,310.60;-28.32,480.16,-70.69,521.52;|60.00;60.00;60.00;60.00;60.00;",
    "54|0054|1088.55,711.95;796.89,395.80;350.18,199.83;-35.62,-88.59;|1088.55,711.95,1046.71,670.05;961.18,517.82,707.31,329.27;503.39,284.87,251.60,145.11;14.51,-57.11,-35.62,-88.59;|60.00;60.00;60.00;",
    "55|0055|1201.15,615.81;739.67,588.08;171.12,547.40;-109.46,612.11;|1201.15,615.81,1142.24,610.31;1036.87,588.08,562.46,588.08;340.95,525.22,12.65,568.11;-50.30,610.80,-109.46,612.11;|60.00;60.00;60.00;",
    "56|0056|-81.77,29.74;167.43,53.77;479.39,33.43;939.03,59.32;1230.68,251.59;|-81.77,29.74,-22.87,35.42;99.13,53.77,267.18,53.77;368.64,35.28,588.54,31.61;807.68,24.93,1101.47,101.84;1181.61,218.49,1230.68,251.59;|60.00;60.00;60.00;60.00;",
    "57|0057|-98.38,142.51;409.25,222.01;854.12,120.33;1156.85,-55.31;|-98.38,142.51,-39.31,145.98;298.48,222.01,544.00,222.01;717.52,181.34,980.09,64.06;1105.65,-25.61,1156.85,-55.31;|60.00;60.00;60.00;",
    "58|0058|-87.31,466.06;252.35,416.14;772.89,462.36;1073.78,419.84;1232.53,331.09;|-87.31,466.06,-28.32,461.46;86.18,414.55,446.17,417.99;663.86,464.18,883.65,460.51;985.17,443.87,1130.89,404.34;1179.61,357.59,1232.53,331.09;|60.00;60.00;60.00;60.00;",
    "59|0059|1204.84,266.38;795.05,332.94;372.33,325.55;-175.91,196.13;|1204.84,266.38,1146.44,275.87;922.19,319.54,654.76,347.73;492.31,340.34,191.44,303.25;-118.32,209.72,-175.91,196.13;|60.00;60.00;60.00;",
    "60|0060|-87.31,90.75;435.09,99.99;676.91,464.21;1049.78,558.50;1263.91,525.22;|-87.31,90.75,-28.42,96.48;309.57,3.85,588.02,217.12;529.23,377.31,778.02,523.70;937.17,558.50,1132.85,558.50;1204.77,526.89,1263.91,525.22;|60.00;60.00;60.00;60.00;",
    "61|0061|937.18,-64.55;763.66,13.10;590.15,164.70;411.10,503.03;123.13,706.40;|937.18,-64.55,883.45,-39.75;813.06,-19.53,714.27,45.73;651.68,73.88,520.00,268.23;497.85,399.50,302.77,632.31;171.49,672.25,123.13,706.40;|60.00;60.00;60.00;60.00;",
    "62|0062|-100.23,534.46;239.42,484.54;669.52,486.39;1234.38,547.40;|-100.23,534.46,-41.69,525.86;163.74,488.24,322.58,480.48;562.46,479.00,763.60,492.89;1175.55,541.05,1234.38,547.40;|60.00;60.00;60.00;",
    "64|0063|-91.00,312.61;217.27,356.98;671.37,247.90;999.94,336.64;1195.61,479.00;|-91.00,312.61,-32.42,320.94;56.68,366.22,343.25,349.73;453.55,257.14,802.36,242.34;944.57,303.36,1076.66,382.74;1150.63,440.50,1195.61,479.00;|60.00;60.00;60.00;60.00;",
    "65|0064|-79.92,369.92;184.05,475.30;669.52,527.07;1230.68,405.05;|-79.92,369.92,-26.77,395.95;71.93,444.80,333.57,515.97;610.52,531.42,844.89,514.12;1172.86,417.62,1230.68,405.05;|60.00;60.00;60.00;",
    "66|0065|1212.22,495.64;892.88,591.78;481.24,608.41;84.37,558.50;-122.38,551.10;|1212.22,495.64,1154.98,510.62;1036.86,567.74,834.52,601.52;603.07,617.66,350.54,598.50;206.20,573.29,-10.54,546.97;-63.29,554.18,-122.38,551.10;|60.00;60.00;60.00;60.00;",
    "67|0066|1195.61,27.89;802.43,72.26;239.42,20.49;-83.61,118.48;|1195.61,27.89,1136.57,31.81;929.80,75.96,616.03,66.85;344.64,9.40,111.91,33.94;-25.22,108.95,-83.61,118.48;|60.00;60.00;60.00;",
    "68|0067|1245.45,218.32;800.59,124.03;329.88,186.89;-129.76,144.36;|1245.45,218.32,1186.32,216.25;1018.21,114.13,597.53,133.27;503.39,170.25,142.22,204.89;-70.90,138.32,-129.76,144.36;|60.00;60.00;60.00;",
    "69|0068|-94.69,166.55;163.74,223.86;538.46,129.57;922.41,197.98;1225.15,146.21;|-94.69,166.55,-35.67,170.71;28.99,220.16,315.33,228.02;396.33,138.82,674.82,120.70;786.07,185.56,1003.63,205.37;1166.32,152.60,1225.15,146.21;|60.00;60.00;60.00;60.00;",
    "70|0069|-113.15,430.93;185.89,521.52;704.60,427.23;1236.22,490.09;|-113.15,430.93,-55.44,444.02;51.14,519.67,304.03,523.14;537.04,439.22,833.81,417.99;1177.43,483.42,1236.22,490.09;|60.00;60.00;60.00;",
    "71|0070|-70.69,101.84;160.05,136.97;579.07,157.31;916.88,135.12;1210.38,64.86;|-70.69,101.84,-12.51,112.59;57.19,121.82,285.57,155.46;481.24,157.31,669.54,157.31;826.36,147.56,1011.02,122.18;1152.83,78.64,1210.38,64.86;|60.00;60.00;60.00;60.00;",
    "72|0072鱼群|1201.15,544.59;1057.17,510.42;905.80,544.59;763.66,510.41;612.30,544.59;464.63,510.42;316.96,544.59;171.12,510.41;19.76,544.60;-87.30,517.82;|1201.15,544.59,1145.69,523.94;1116.33,509.68,998.01,511.16;964.96,543.47,846.65,545.70;822.83,510.04,704.50,510.79;671.46,545.33,553.14,543.86;523.79,511.17,405.46,509.68;376.12,543.84,257.79,545.34;230.29,511.15,111.96,509.68;78.93,544.60,-39.41,544.60;-32.97,541.28,-87.30,517.82;|60.00;60.00;60.00;60.00;60.00;60.00;60.00;60.00;60.00;",
    "73|0073鱼群|1203.00,514.13;1064.55,544.59;909.50,510.42;759.97,544.59;615.99,510.42;466.47,544.59;316.94,510.4
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值