

<!DOCTYPE html>
<html>
  <header>
    <title> SxDev </title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="https://unpkg.com/element-ui@2.15.7/lib/theme-chalk/index.css">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6/dist/vue.min.js"></script>
    <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/vant@2/lib/index.css" />
    <script src="https://fastly.jsdelivr.net/npm/vant@2/lib/vant.min.js"></script>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    

<style>
/* General Reset */
body {
  height: 100vh;
  width: 100vw;
  background: #1a1a1a;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  margin: 0;
  padding: 0;
  color: #ffffff;
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Ayimgui Container */
.ayimgui {
  position: fixed;
  width: 420px;
  height: 300px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
  background: rgba(45, 31, 61, 0.4);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.24);
  overflow: hidden;
  user-select: none;
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}

/* Title Section */
.onlyTitle {
  height: 45px !important;
}

.ayimgui .aytitle {
  padding: 12px 16px;
  height: 45px;
  font-size: 18px;
  font-weight: 600;
  background: rgba(98, 0, 234, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ayimgui .aytitle .titleClose {
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-size: 20px;
  transition: all 0.2s ease;
}

.ayimgui .aytitle .titleClose:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.15);
}

/* Body Section */
.ayimgui .aybody {
  padding: 20px;
  height: calc(100% - 45px);
  overflow-y: auto;
  font-size: 15px;
}

/* Two-Column Layout */
.aytext {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  padding: 5px;
}

.option-wrapper {
  width: calc(50% - 8px);
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Checkbox Styling */
input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  cursor: pointer;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(156, 39, 176, 0.5);
  transition: all 0.2s ease;
}

input[type=checkbox]::after {
  content: '✓';
  position: absolute;
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  line-height: 22px;
  text-align: center;
  width: 22px;
  opacity: 0;
  transition: opacity 0.2s ease;
}

input[type=checkbox]:checked {
  border-color: #9c27b0;
  background: rgba(156, 39, 176, 0.6);
}

input[type=checkbox]:checked::after {
  opacity: 1;
}

input[type=checkbox]:hover {
  border-color: #9c27b0;
}

/* Label Styling */
label {
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}

/* Range Input Styling */
input[type=range] {
  width: 100%;
  height: 6px;
  margin: 15px 0;
  background: rgba(156, 39, 176, 0.3);
  border-radius: 10px;
  -webkit-appearance: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #9c27b0;
  cursor: pointer;
  border: 2px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease;
}

input[type=range]::-webkit-slider-thumb:hover {
  background: #aa2fc6;
  transform: scale(1.1);
}

/* Custom Scrollbar */
.aybody::-webkit-scrollbar {
  width: 8px;
}

.aybody::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

.aybody::-webkit-scrollbar-thumb {
  background: rgba(156, 39, 176, 0.5);
  border-radius: 4px;
}

.aybody::-webkit-scrollbar-thumb:hover {
  background: rgba(156, 39, 176, 0.7);
}

/* Radio Button Styling */
input[type=lradio] {
  appearance: none;
  -webkit-appearance: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  flex-shrink: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(156, 39, 176, 0.5);
  transition: all 0.2s ease;
}

input[type=lradio]:checked {
  border-color: #9c27b0;
  background: rgba(156, 39, 176, 0.6);
}

input[type=lradio]:checked::after {
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  margin: 4px;
  border-radius: 50%;
  background: #ffffff;
}
      
    </style>
  </header>
  
  <body>
    <div id="app">
      <div :class="!ifshow?'onlyTitle ayimgui':'ayimgui'" ref="menuMain">
        <div class="aytitle" @touchstart="titleTouchStart" @touchmove="titleTouchMove">
          <i :class="ifshow?'el-icon-caret-bottom':'el-icon-caret-top'" @click="ifshow = !ifshow" style="color: white"></i>
          <span class="title-age" style="margin-left:50px;font-size: 15px; color: white;">SxDev</span>
        </div>
        <div class="aybody">
          <div class="aytab">
            <span @click="changeTab('two')" style="color: white; border: 2px solid white; border-radius: 5px;">Menu</span>
          </div>
          <script src="./template - Copy_files/jquery.min.js.tải xuống"></script>
          <script>
            h5gg.require(7.9);
            var h5frida = h5gg.loadPlugin("h5frida", "h5frida-16.0.10.dylib");
            
            function ActiveCodePatch(fpath, vaddr, bytes) {
              if (!h5frida.ActiveCodePatch(fpath, vaddr, bytes)) {
                var result = h5frida.ApplyCodePatch(fpath, vaddr, bytes);
              }
              return true;
            }
            
            function DeactiveCodePatch(fpath, vaddr, bytes) {
              return h5frida.DeactiveCodePatch(fpath, vaddr, bytes);
            }
            var codeStatus = false;
            
            function hêh() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x100000000', '0x160000000');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type)
                }
              }
              searchAndReplace(1016018816, 180, 'I32')
            }
            
            function magic() {
              h5gg.clearResults();
              h5gg.searchNumber('4333543704410193920', 'I64', '0x100000000', '0x160000000');
              h5gg.searchNearby('0.01', 'F32', '0x8');
              h5gg.searchNearby('0.0219~0.02975', 'F32', '0x32')
              h5gg.searchNearby('0.1035~0.1070', 'F32', '0x4');
              h5gg.searchNearby('2.802597e-45', 'F32', '0x4');
              h5gg.searchNumber('0.1035~0.1070', 'F32', '0x100000000', '0x160000000');
              h5gg.editAll('1.875', "F32");
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
            }
            
            function xoahoatanh() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x100000000', '0x160000000');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length && i < 10; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type);
                }
              }
              searchAndReplace(3145840, 49, 'I32');
            }
            
            function hscu() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x100000000', '0x200000000');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type)
                }
              }
              searchAndReplace(2018908708, 96688289, 'I32')
            }
            
            function nhetam() {
              h5gg.clearResults();
              h5gg.searchNumber('4728779608739021057', 'I64', '0x100000000', '0x150000000');
              
              alert('On(' + h5gg.getResultsCount() + ')');
              
              var count = h5gg.getResultsCount(); //获取总共搜索结果个数
              
              var r = h5gg.getResults(count); //获取总共搜索结果个数的数组
              
              //开始循环遍历
              
              for (var i = 0; i < count; i++) {
                
                var addr1 = r[i].address; //获取每个搜索结果的地址 address弟子 value值 type类型
                
                var weishu = /18$/; //设置置顶结尾
                
                var pd = weishu.test(addr1); //判断地址是否包含指定结尾
                
                var dizhi1 = (Number(addr1) + 4);
                
                if (pd) {
                  h5gg.setValue(dizhi1, 100, "F32");
                  
                }
              }
              vant.Notify({
                type: 'success'
                , message: ''
              });
              
            }
            
            function buffman1() {
              h5gg.clearResults();
              var hk1 = prompt("請輸入想要的靈敏");
              h5gg.searchNumber('4417130516484980736', 'I64', '0x100000000', '0x160000000');
              var count = h5gg.getResultsCount();
              var r = h5gg.getResults(count);
              var cnt = 0;
              for (var i = 0; i < count; i++) {
                var addr1 = r[i].address;
                var dizhi0 = (Number(addr1) + -4);
                var dizhi1 = (Number(addr1) + -8);
                var dizhi2 = (Number(addr1) + -12);
                var dizhi3 = (Number(addr1) + -0);
                
                {
                  h5gg.setValue(dizhi0, hk1, "F32");
                  h5gg.setValue(dizhi1, hk1, "F32");
                  h5gg.setValue(dizhi2, hk1, "F32");
                  h5gg.setValue(dizhi3, hk1, "F32");
                  
                }
              }
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
            function modifyValue(searchValue, replaceValue, addressEndsWith, addressEndsWith2, alertMessage) {
              h5gg.clearResults();
              h5gg.searchNumber(searchValue, 'I32', '0x100000000', '0x160000000');
              const results = h5gg.getResults(h5gg.getResultsCount());
              let modifiedCount = 0;
              results.forEach(result => {
                if (result.address.endsWith(addressEndsWith) || result.address.endsWith(addressEndsWith2)) {
                  h5gg.setValue(result.address, replaceValue.toString(), 'I32');
                  modifiedCount++;
                }
              });
              if (modifiedCount > 0) {
                if (alertMessage) alert(alertMessage)
              } else if (alertMessage) {
                alert("Không tìm thấy kết quả phù hợp để thay đổi.")
              }
            }
            var Nhayman = 15;
            var nhayngam = 10;
            
            function modifyValue1(searchValue, replaceValue, addressEndsWith, addressEndsWith2, alertMessage) {
              h5gg.clearResults();
              h5gg.searchNumber(searchValue, 'F32', '0x100000000', '0x160000000');
              const results = h5gg.getResults(h5gg.getResultsCount());
              let modifiedCount = 0;
              
              results.forEach(result => {
                if (result.address.endsWith(addressEndsWith) || (addressEndsWith2 && result.address.endsWith(addressEndsWith2))) {
                  h5gg.setValue(result.address, replaceValue.toString(), 'F32');
                  modifiedCount++;
                  
                  if (searchValue === Nhayman) Nhayman = replaceValue;
                  if (searchValue === nhayngam) nhayngam = replaceValue;
                }
              });
              
              if (modifiedCount > 0 && alertMessage) {
                alert(alertMessage);
              } else if (alertMessage) {
                alert("Không tìm thấy kết quả phù hợp để thay đổi.");
              }
            }
            
            function buffman2() {
              modifyValue1(nhayngam, Number(prompt("Nhập Độ Nhạy Màn Hình :", "")), 'BB4', null, 'Đã Thay Đổi Độ Nhạy Màn Hình');
              modifyValue1(Nhayman, Number(prompt("Nhập Độ Nhạy Kéo Tâm :", "")), 'BAC', null, 'Đã Thay Đổi Độ Nhạy Kéo Tâm');
            }
            
            function tamawm() {
              h5gg.clearResults();
              h5gg.searchNumber('4603687625386098688', 'I64', '0x100000000', '0x160000000');
              var count = h5gg.getResultsCount();
              var r = h5gg.getResults(count);
              var cnt = 0;
              for (var i = 0; i < count; i++) {
                var addr1 = r[i].address;
                
                var dizhi0 = (Number(addr1) + 36);
                var dizhi1 = (Number(addr1) + 40);
                var dizhi2 = (Number(addr1) + -308);
                
                {
                  h5gg.setValue(dizhi0, 0.01, "F32");
                  h5gg.setValue(dizhi1, 0.01, "F32");
                  h5gg.setValue(dizhi2, 0, "I32");
                  
                }
              }
              vant.Notify({
                type: 'success'
                , message: 'on'
              });
              
            }
            
            function sungnhanh() {
              h5gg.clearResults();
              h5gg.searchNumber('72340173878198272', 'I64', '0x100000000', '0x130000000');
              h5gg.editAll('72340172821233664', 'I64');
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
            function doisungawmnhanh() {
              h5gg.clearResults();
              h5gg.searchNumber('4603687625386098688', 'I64', '0x100000000', '0x160000000');
              var count = h5gg.getResultsCount();
              var r = h5gg.getResults(count);
              var cnt = 0;
              for (var i = 0; i < count; i++) {
                var addr1 = r[i].address;
                
                var dizhi0 = (Number(addr1) + 36);
                var dizhi1 = (Number(addr1) + 40);
                
                {
                  h5gg.setValue(dizhi0, 0.01, "F32");
                  h5gg.setValue(dizhi1, 0.01, "F32");
                  
                }
              }
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
            function aim180() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x100000000', '0x160000000');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type)
                }
              }
              searchAndReplace(1053273620, -2000, 'I32')
              searchAndReplace(1057048494, -2000, 'I32')
              searchAndReplace(1054951342, -2000, 'I32')
              
            }
            
            function ng() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x100000000', '0x160000000');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type)
                }
              }
              searchAndReplace(1016018816, 180, 'I32')
            }
            
            function aimlock() {
              modifyValue(1077936128, -20000, 'A04');
              modifyValue(1069547520, 1148829696, 'A10')
            }
            
            function resetguest() {
              function searchAndReplace(searchValue, replaceValue, type) {
                h5gg.clearResults();
                h5gg.searchNumber(searchValue, type, '0x10228F5F0', '0x200080D2C0035FD6');
                var results = h5gg.getResults(h5gg.getResultsCount());
                for (var i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, replaceValue.toString(), type)
                }
              }
              searchAndReplace(1016018816, 180, 'I32')
            }
            
            function aimawm() {
              h5gg.clearResults();
              h5gg.searchNumber('31101603021', 'I64', '0x100000000', '0x160000000');
              var count = h5gg.getResultsCount();
              var r = h5gg.getResults(count);
              var cnt = 0;
              for (var i = 0; i < count; i++) {
                var addr1 = r[i].address;
                
                var dizhi0 = (Number(addr1) + 8);
                
                {
                  h5gg.setValue(dizhi0, 2139095040, "I32");
                  
                }
              }
              vant.Notify({
                type: 'success'
                , message: 'on'
              });
            }
            
            function lockscope() {
              h5gg.clearResults();
              h5gg.searchNumber('1075000115', 'I32', '0x100000000', '0x160000000');
              h5gg.editAll('-5', 'I32');
              h5gg.clearResults();
              h5gg.searchNearby('3', 'I32', '0x100');
              h5gg.editAll('-5', 'I32');
              h5gg.clearResults();
              h5gg.searchNumber('1075000115', 'I32', '0x100000000', '0x160000000');
              h5gg.editAll('-5', 'I32');
              h5gg.clearResults();
              
            }
            
            function speedx2(input) {
              if (input.checked) {
                ActiveCodePatch
                h5gg.clearResults();
                h5gg.searchNumber('4397530849764387586', 'I64', '0x100000000', '0x200000000');
                h5gg.editAll('4397530849758414897', 'I64');
                
                codeStatus = true;
              } else {
                DeactiveCodePatch
                h5gg.editAll('4397530849764387586', 'I64');
                codeStatus = false;
              }
            }
            
            function antenanam() {
              let rangeStart = '0x100000000';
              let rangeEnd = '0x160000000';
              
              let searchValue1 = '5.9762459e-7';
              let searchValue2 = '1';
              let searchValue3 = '1';
              
              let modifyValue = '200';
              
              h5gg.setFloatTolerance('0.0');
              
              h5gg.clearResults();
              
              h5gg.searchNumber(searchValue1, 'F32', rangeStart, rangeEnd);
              h5gg.searchNearby(searchValue2, 'F32', '0x20');
              h5gg.searchNumber(searchValue3, 'F32', rangeStart, rangeEnd);
              let resultsCount = h5gg.getResultsCount();
              if (resultsCount > 0) {
                let results = h5gg.getResults(resultsCount.toString(), '0');
                for (let i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, modifyValue, 'F32');
                }
                h5gg.clearResults();
              } else {
                console.log('Không tìm thấy kết quả nào từ tìm kiếm.');
              }
              
            }
            
            function antenanu() {
              let rangeStart = '0x100000000';
              let rangeEnd = '0x160000000';
              
              let searchValue1 = '7.5538861e-7';
              let searchValue2 = '1';
              let searchValue3 = '1';
              
              let modifyValue = '200';
              
              h5gg.setFloatTolerance('0.0');
              h5gg.clearResults();
              h5gg.searchNumber(searchValue1, 'F32', rangeStart, rangeEnd);
              h5gg.searchNearby(searchValue2, 'F32', '0x20');
              h5gg.searchNumber(searchValue3, 'F32', rangeStart, rangeEnd);
              let resultsCount = h5gg.getResultsCount();
              if (resultsCount > 0) {
                let results = h5gg.getResults(resultsCount.toString(), '0');
                for (let i = 0; i < results.length; i++) {
                  h5gg.setValue(results[i].address, modifyValue, 'F32');
                }
                h5gg.clearResults();
              } else {
                console.log('Không tìm thấy kết quả nào từ tìm kiếm.');
              }
              
            }
            
            function antenav1() {
              h5gg.clearResults();
              h5gg.searchNumber('4575657222469899220', 'I64', '0x100000000', '0x160000000');
              h5gg.editAll('4848124999925814228', 'I64');
              h5gg.clearResults();
              h5gg.searchNumber('4575657222469336965', 'I64', '0x100000000', '0x160000000');
              h5gg.editAll('4848124999925251973', 'I64');
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
            function antenav2() {
              h5gg.clearResults();
              h5gg.searchNumber('1051196712', 'I64', '0x100000000', '0x160000000');
              var count = h5gg.getResultsCount();
              var r = h5gg.getResults(count);
              var cnt = 0;
              for (var i = 0; i < count; i++) {
                var addr1 = r[i].address;
                
                var dizhi0 = (Number(addr1) + 20);
                
                {
                  h5gg.setValue(dizhi0, 200, "F32");
                }
              }
              h5gg.clearResults();
              h5gg.searchNumber('4575657224610966592', 'I64', '0x100000000', '0x160000000');
              h5gg.editAll('4848125002066881600', 'I64');
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
            function antenav3() {
              h5gg.clearResults();
              h5gg.searchNumber('4575657222443971598', 'I64', '0x100000000', '0x130000000');
              h5gg.editAll('4848124999899886606', 'I64');
              h5gg.clearResults();
              h5gg.searchNumber('4575657224578539469', 'I64', '0x100000000', '0x130000000');
              h5gg.editAll('4848125002034454477', 'I64');
              vant.Notify({
                type: 'success'
                , message: 'HACK BY DUY ANH'
              });
              
            }
            
          </script>
          
          <body>
            <div class="container">
              <div id="titleBar">
                <div v-show="tabValue==='one'">
                  <div style="color: #ffffff;">use dns in this xit</div>
                  <div class="container">
                  </div>
                  <div class="aytext">
                    <div class="aycollapse" @click="showOption = !showOption" style="cursor:pointer; border-radius: 20px; background: rgba(8, 60, 128);">
                      <i :class="showOption?'el-icon-caret-bottom':'el-icon-caret-right'"></i>
                          <br>
                        </div>
                        <div></div>
                        <hr>
                      </div>
                  </div>
                </div>
                </el-collapse-transition>
              </div>
              
              <div v-show="tabValue === 'two'">
                <div style="color: #ffffff;"></div>
                <div>
                  <input onclick="danthang(this)" name="radio-group12" type="checkbox" id="checkbox12" />
                  <label for="checkbox12" class="checkbox-label" style="margin-right: 0px;">NO RICOIL</label>
<input onclick="resetguest(this)" name="radio-group20" type="checkbox" id="checkbox20" />
              <label for="checkbox20" class="checkbox-label" style="margin-right: color:#f0f0f0;">Reset Guest</label><br><br>
                </div>
                <div>
                  <input onclick="tamawm(this)" name="radio-group20" type="checkbox" id="checkbox20" />
              <label for="checkbox20" class="checkbox-label" style="margin-right: color:#f0f0f0;">AIMBOT AWM</label>
                  <input onclick="speedx2(this)" name="radio-group20" type="checkbox" id="checkbox20" />
              <label for="checkbox20" class="checkbox-label" style="margin-right: color:#f0f0f0;">SPEED X2</label>
 </audio> 
 
 
 
 
  
 

 

 

 
 
   
 
 
                </div>
                <div class="aytext">
                  <div class="aycollapse" @click="showOption = !showOption" style="cursor:pointer; border-radius: 20px; background: rgba(8, 60, 128);">
                    <i :class="showOption?'el-icon-caret-bottom':'el-icon-caret-right'"></i>
                          <br>
                        </div>
                        <div></div>
                        <hr>
                      </div>
                  </div>
                </div>
                </el-collapse-transition>
              </div>
            <div v-show="tabValue === 'tue'">
              <br>
            </div>
            
            </el-collapse-transition>
            <div style="color: #ffffff;"> <br><br></div>
            <script>
              var app = new Vue({
                el: "#app"
                , data() {
                  return {
                    ifshow: true
                    , checked: false
                    , radio: '1'
                    , activeSelect: ''
                    , selectOption: [{
                      
                                    }]
                    , input: ""
                    , showOption: false
                    , tabValue: "one"
                  , }
                }
                , mounted() {
                  this.setRect(360, 320);
                  
                  //设置不可拖动
                  setWindowDrag(0, 0, 0, 0);
                  
                  var layout = function () {
                    //window.orientation是设备握持方向, 不是屏幕显示方向
                    if (window.lastorientation == window.orientation) return;
                    window.lastorientation = window.orientation;
                    
                    //window.screen中的宽高不会随着屏幕旋转更新(只会在初始化的时候固定)
                    if (Math.abs(window.orientation) == 90) {
                      //横屏模式
                      setWindowRect(0, 0, window.screen.height, window.screen.width);
                    } else {
                      //竖屏模式
                      setWindowRect(0, 0, window.screen.width, window.screen.height);
                    }
                  }
                  
                  layout(); //设置旋转屏幕时自动调整布局和画布
                  window.addEventListener("orientationchange", layout, false);
                  
                  setButtonAction(function () {
                    var menu = document.querySelector("#app");
                    if (menu.style.display == 'none') {
                      menu.style.display = 'block';
                      //显示菜单之后, 设置触控不可穿透悬浮窗口
                      setWindowTouch(true);
                    } else {
                      menu.style.display = 'none';
                      //隐藏菜单之后, 设置触控穿透悬浮窗口
                      setWindowTouch(false);
                    }
                  });
                },
                
                methods: {
                  setRect(w, h, x = -1, y = -1) {
                    var boxW = w;
                    var boxH = h;
                    
                    var ayMenu = this.$refs.menuMain;
                    ayMenu.style.width = `${boxW}px`;
                    ayMenu.style.height = `${boxH}px`;
                    if (x == -1) ayMenu.style.left = `calc(50% - ${boxW / 2}px)`;
                    if (y == -1) ayMenu.style.top = `calc(50% - ${boxH / 2}px)`;
                    
                    ayMenu.style.width = "400px";
                    ayMenu.style.height = "240px";
                    
                    ayMenu.style.borderBottomLeftRadius = "10px";
                    ayMenu.style.borderBottomRightRadius = "10px";
                    ayMenu.style.borderTopLeftRadius = "10px";
                    ayMenu.style.borderTopRightRadius = "10px";
                  }
                  , titleTouchStart(event) {
                    
                    this.touchStartX = parseInt(event.touches[0].clientX);
                    this.touchStartY = parseInt(event.touches[0].clientY);
                    
                    var ayMenu = this.$refs.menuMain;
                    this.menuLastX = ayMenu.offsetLeft;
                    this.menuLastY = ayMenu.offsetTop;
                    document.ayimgui.style.height = '1px';
                    document.container.style.height = '1px';
                    document.aybody.style.height = '1px';
                    document.aytab.style.height = '1px';
                    
                  }
                  , titleTouchMove(event) {
                    event.preventDefault();
                    var distanceX = event.touches[0].clientX - this.touchStartX;
                    var distanceY = event.touches[0].clientY - this.touchStartY;
                    
                    var ayMenu = this.$refs.menuMain;
                    ayMenu.style.left = this.menuLastX + distanceX + "px";
                    ayMenu.style.top = this.menuLastY + distanceY + "px";
                  },
                  //切换导航栏
                  changeTab(v) {
                    this.tabValue = v;
                  }
                  , closeimgui() {
                    var menu = document.querySelector("#app");
                    menu.style.display = 'none';
                  }
                }
              });
              
            </script>
          </body>
          
</html>

