Инженерный анализ [закрытого] Flash

Извините, я не могу прочитать ваш код, я слишком много могу сказать, и я полагаю, что ваша ошибка связана с плохим управлением в отношении адресации таблиц и их элементов.

Я адаптировал один из моих старых кодов, чтобы он соответствовал вашей работе; это большой технический пробел для вас, но я думаю, что вам будет полезно программировать на лучшие рельсы:)

HTML-часть: `

<div id="Bt_BUY">
    <button data-price="150000"  >Avocado & Brownie Cake</button>
    <button data-price="65000"  >Strawberry & Watermelon Cake</button>
</div>

<table id="show-cart">
  <thead>
    <tr>
      <th>name</th>
      <th>price</th>
      <th>count</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

<button id="clear-cart" >Clear Cart</button>

`

[116 ] JS часть `

"use strict"

const Buy_obj = {
  List : [],
  DisplayTable : null,

  add( x_name, x_price, x_count ) {

    let idx = this.List.findIndex( e=>e.name=== x_name);

    if (idx>=0)
      { this.List[idx].count += x_count; }
    else
      { this.List.push( { 'name' : x_name, 'price' : x_price, 'count' : x_count } ) }

    this.saveList();
    this.drawTable();
  }
  ,
  clear(){ 
    this.List.length = 0;

    this.saveList();
    this.drawTable();
  }
  ,
  remove( x_name ) {
    let idx = this.List.findIndex( e=>e.name=== x_name);

    if (idx>=0) {
      this.List[idx].count--;
      if (this.List[idx].count <= 0) 
        {  this.List.splice(idx,1) }
    }
    this.saveList();
    this.drawTable();
  }
  ,
  saveList() {
    localStorage.setItem("shoppingCart", JSON.stringify(this.List));
  }
  ,
  loadList() {
    let ls_list = localStorage.getItem("shoppingCart");
    if ( ls_list)
      { this.List = JSON.parse(ls_list); }
  }
  ,
  initialise( $xTable ) {
    this.DisplayTable = $xTable;

    this.loadList();
    this.drawTable();
  }
  ,
  drawTable() {
    this.DisplayTable.innerHTML = "";

    this.List.forEach(e=>{
      let
        T_row  = this.DisplayTable.insertRow(-1),
        T_cell_0 = T_row.insertCell(0),
        T_cell_1 = T_row.insertCell(1),
        T_cell_2 = T_row.insertCell(2);

        T_cell_0.textContent = e.name;
        T_cell_1.textContent = e.price;
        T_cell_2.textContent = e.count;
    })
  }
}

//  *************************** Main *****************************

Buy_obj.initialise ( document.querySelector('#show-cart tbody')  );


document.querySelector('#Bt_BUY').onclick = function(e) {
  if (!e.target.matches('button')) return;
  e.stopPropagation();

  Buy_obj.add( e.target.textContent, e.target.dataset.price, 1 );
}

document.querySelector('#clear-cart').onclick = function(e) {
  Buy_obj.clear();
}

`

12
задан Ryan Smith 24 March 2009 в 08:50
поделиться

5 ответов

Демонтируйте SWF с Flasm.

Примечание: Только работы для флэш-памяти 8 или ранее к сожалению.

SWFTools мог бы дать Вам некоторую информацию также о файлах SWF. Они, кажется, намного более свежи.

7
ответ дан 26 October 2019 в 10:46
поделиться

Я очень не хочу дать, "просто гуглят его" ответ, но это действительно настолько просто, если Вы знаете что условия использовать.

3
ответ дан 26 October 2019 в 10:46
поделиться

В дополнение к захвату декомпилятора Flash можно хотеть прочитать документы Спецификации Формата файла SWF.

1
ответ дан 26 October 2019 в 10:46
поделиться

Как человек, постоянно работающий с форматом файла SWF и байт-кодом ActionScript 2 и 3, я настоятельно рекомендую ASV . В отличие от других декомпиляторов, он был разработан для просмотра SWF-файлов, а не только для их преобразования в FLA.

Кроме того, вам необходимо прочитать следующие документы:

Спецификации формата SWF-файлов v10

Обзор AVM2

]
5
ответ дан 26 October 2019 в 10:46
поделиться

FWIW: Я создал (дис-) ассемблер ActionScript 3 (который позволяет собирать обратно измененный код, даже для запутанных файлы). По функциональности он похож на flasm, но нацелен на AVM (используется в более новых версиях Flash) и работает непосредственно с байт-кодом AS, а не целыми SWF-файлами. Чтобы отредактировать остальную часть файла, вы можете использовать такой инструмент, как SWiX .

2
ответ дан 26 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: