2015-11-25 3 views
0

Я использую PHP MySQL и AS3 для загрузки динамических данных в зависимости от номера сайта. Проблема, когда я нажимаю следующий сайт, добавляет прирост к существующему сайту и отображает новый сайт, но по какой-то причине не удаляет контент со старого сайта?Ошибка загрузки динамических данных AS3

MY PHP

$dbHost = "localhost"; 
$dbUser = "username"; 
$dbPass = "password"; 
$dbName = "dbname"; 
$dbTable = "tablename"; 

if (isset($_GET['sn'])) { 
$sn = $_GET['sn']; 
} 

// connecting and selecting database 
@mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error()); 
@mysql_select_db($dbName) or die(mysql_error()); 

// getting data 
    $data = ""; 
    $datatitle = ""; 
    $res = mysql_query("SELECT * FROM ".$dbTable." WHERE Site_ID='$sn'") or die(mysql_error()); 
    while($row = mysql_fetch_object($res)) { 
    $data .= strip_tags($row->Site_Description); 
} 
die($data); 

мой AS3 код пакета:

package { 

import flash.display.MovieClip; 
import flash.events.Event; 
import flash.display.Loader; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.net.URLRequestMethod; 
import flash.text.TextField; 
import flash.events.IOErrorEvent; 

public class App extends MovieClip { 
    public static const URL:String = 'weburl/get.php'; 
    private var loader:URLLoader; 
    private var request:URLRequest; 
    public function App():void { 
     output(" "); 
     loadData(); 
    } 

    var siteNumber = 2;  

    public function loadData():void { 

     var randomParam:String = "?p=" + Math.floor(Math.random() * (10000000)) + "&sn="; 
     this.loader = new URLLoader(); 
     request = new URLRequest(URL + randomParam + siteNumber); 
     request.method = URLRequestMethod.POST; 
     loader.addEventListener(Event.COMPLETE, onLoadData); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFiledToLoad); 
     loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFiledToLoad); 
     loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFiledToLoad); 
     loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFiledToLoad); 
     loader.load(request); 

     } 

    public function onLoadData(e:Event):void { 
     output(e.target.data); 
    } 
    private function onDataFiledToLoad(e:IOErrorEvent):void { 
     output("onDataFiledToLoad error=" + e.text); 
    } 

    public function output(str:String):void { 
     var text:String = field.htmlText; 
     field.htmlText = str + text; 

    } 

    function removeExisting():void { 

      this.loader.close(); 
    } 

    } 


} 

код я использую на раме

next_site1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandlernext_site1); 
      function mouseDownHandlernext_site1(event:MouseEvent):void 
      { siteNumber = siteNumber + 1; 

       SiteNumberText1.text = siteNumber.toString(); 
       loadData(); 
      } 
prev_site1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandlerprev_site1); 
      function mouseDownHandlerprev_site1(event:MouseEvent):void 
      { siteNumber = siteNumber - 1; 

       SiteNumberText1.text = siteNumber.toString(); 
       loadData(); 

      } 

Я понимаю, что вы должны выгрузить данные, но не может найти эффективного решения.

Я смотрел на эти вопросы ниже, но они не помогают (не упомянул о том, чтобы выгрузить данные или почему новые данные не заменяют старые данные.):

xml data to dynamic text AS3 flash

AS3 Save & Load multiple text boxs data to local file(s)

+1

@Fushy Что вы подразумеваете под "разгрузкой"? Возможно, 'field.htmlText = text;' ... – akmozo

+1

Ваша функция 'output()' prepends' field.htmlText' с новым контентом. Зачем ты это делаешь? akmozo является правильным в предыдущем комментарии. –

ответ

0

Как говорили другие, вы сохраняете старый вывод и добавляете новое вместо замены старого на новое. Это линия field.htmlText = str + text;. Вместо этого перезапишите htmlText с данным (новым) контентом.

public function output(str:String):void { 
    field.htmlText = str; 
} 
+0

Я просто понял, что данные отображаются правильно, когда я его просматриваю (alt и введите), но вообще не отображается, когда я открываю файл .swf самостоятельно. Любые советы для этого? – Fushy