i am trying to make a "game" in Flex similar to Shake&Fidget. I'm saving all the user data in a MySQL database and I retrieve the data using ZendFramework (PHP).
I thought of saving all the user and character info I'm going to need into am AS class so I can use that data in every view.
Данные, полученные из базы данных, верны. Я смог загрузить его в своих мобильных устройствах, но каждый раз, когда я менял взгляды, он снова спрашивал об этом, поэтому я подумал о том, чтобы сделать эти классы, чтобы просто спросить информацию.
Я опубликую здесь файлы, так что это все более ясно.
ViewNavigatorAplication.mxml
Первый вид переходит на экран входа в систему, он работает нормально. Поэтому я перейду к представлению, которое загружает и «пытается» показать символьные данные.
char_panel.mxml
<!-- Place non-visual elements (e.g., services, value objects) here -->
Что касается классов AS:
Character.as
package valueObjects{
import mx.data.ChangedItems;
import mx.messaging.channels.StreamingAMFChannel;
import spark.components.Label;
import spark.skins.spark.StackedFormHeadingSkin;
[Bindable]
public class Character
{
private var _name:String;
private var _stats:FinalStats;
private var _gear:GearList;
public function Character()
{
this._stats = new FinalStats();
this._gear = new GearList();
}
public function modStats(str:int,intel:int,cha:int,sta:int,dex:int):void{
this._stats.modStr(str);
this._stats.modInt(intel);
this._stats.modCha(cha);
this._stats.modVit(sta);
this._stats.modDex(dex);
}
public function getStats():Array{
var aStats:Array;
aStats["str"]=this._stats.getStr();
aStats["int"]=this._stats.getInt();
aStats["cha"]=this._stats.getCha();
aStats["sta"]=this._stats.getVit();
aStats["dex"]=this._stats.getDex();
return aStats;
}
public function setName(charName:String):void{
this._name = charName;
}
public function getName():String{
return this._name;
}
public function showStats(lbSTR:Label, lbDEX:Label, lbINT:Label, lbCHA:Label, lbVIT:Label):void{
lbSTR.text = "" + this._stats.getStr();
lbDEX.text = "" + this._stats.getDex();
lbINT.text = "" + this._stats.getInt();
lbCHA.text = "" + this._stats.getCha();
lbVIT.text = "" + this._stats.getVit();
}
}}
FinalStats.as
package valueObjects{
public class FinalStats
{
private var str:int = 0;
private var intel:int = 0;
private var cha:int = 0;
private var sta:int = 0;
private var dex:int = 0;
public function FinalStats()
{
}
public function getStr():int{
return this.str;
}
public function modStr(x:int):void{
this.str+=x;
}
public function getDex():int{
return this.dex;
}
public function modDex(x:int):void{
this.dex+=x;
}
public function getInt():int{
return this.intel;
}
public function modInt(x:int):void{
this.intel+=x;
}
public function getCha():int{
return this.cha;
}
public function modCha(x:int):void{
this.cha+=x;
}
public function getVit():int{
return this.sta;
}
public function modVit(x:int):void{
this.sta+=x;
}
}
}
И последний GearList.as
package valueObjects{
import mx.data.ChangedItems;
import mx.messaging.channels.StreamingAMFChannel;
import spark.components.Label;
import spark.skins.spark.StackedFormHeadingSkin;
public class GearList
{
private var _headID:String;
private var _shoulderID:String;
private var _chestID:String;
private var _bracersID:String;
private var _glovesID:String;
private var _pantsID:String;
private var _bootsID:String;
private var _main_handID:String;
private var _off_handID:String;
public function GearList()
{
}
public function showStats(lbHead:Label, lbShoulder:Label, lbChest:Label, lbBracer:Label, lbGlove:Label, lbPants:Label, lbBoots:Label, lbMainHand:Label, lbOffHand:Label):void{
lbHead.text = ""+this._headID;
lbShoulder.text = ""+this._shoulderID;
lbChest.text = ""+this._chestID;
lbBracer.text = ""+this._bracersID;
lbGlove.text = ""+this._glovesID;
lbPants.text = ""+this._pantsID;
lbBoots.text = ""+this._bootsID;
lbMainHand.text = ""+this._main_handID;
lbOffHand.text = ""+this._off_handID;
}
public function getOff_handID():String
{
return _off_handID;
}
public function setOff_handID(value:String):void
{
_off_handID = value;
}
public function getMain_handID():String
{
return _main_handID;
}
public function setMain_handID(value:String):void
{
_main_handID = value;
}
public function getBootsID():String
{
return _bootsID;
}
public function setBootsID(value:String):void
{
_bootsID = value;
}
public function getPantsID():String
{
return _pantsID;
}
public function setPantsID(value:String):void
{
_pantsID = value;
}
public function getGlovesID():String
{
return _glovesID;
}
public function setGlovesID(value:String):void
{
_glovesID = value;
}
public function getBracersID():String
{
return _bracersID;
}
public function setBracersID(value:String):void
{
_bracersID = value;
}
public function getChestID():String
{
return _chestID;
}
public function setChestID(value:String):void
{
_chestID = value;
}
public function getShoulderID():String
{
return _shoulderID;
}
public function setShoulderID(value:String):void
{
_shoulderID = value;
}
public function getHeadID():String
{
return _headID;
}
public function setHeadID(value:String):void
{
_headID = value;
}
}}
Если вы все еще здесь, у вас есть все мое уважение: D
Когда я попробую, я получаю следующую ошибку. Я пробовал в char_panel.mxml, используя Character :: modStats (...) вместо data.modStats, я поставлю журнал ошибок под этим.
Журнал ошибок при использовании data.modStats (...)
TypeError: Ошибка # 1006: modStats не является функцией.
at views :: char_panel/updateStats() [C: \ Users \ Zebrah \ Rotr \ Rotr \ src \ views \ char_panel.mxml: 23]
at views :: char_panel/onStatsResult() [C: \ Users \ Zebrah \ Rotr \ Rotr \ src \ views \ char_panel.mxml: 39]
на flash.events::EventDispatcher/dispatchEventFunction ()
на flash.events::EventDispatcher/dispatchEvent ()
в mx.rpc :: CallResponder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ CallResponder.as: 122]
в mx.rpc :: AsyncToken/http: //www.adobe.com/2006/flex/mx/internal :: applyResult() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AsyncToken.as: 239]
в mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ тх \ RPC \ события \ ResultEvent.as: 207]
в mx.rpc :: AbstractOperation/http: //www.adobe.com/2006/flex/mx/internal :: dispatchRpcEvent() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AbstractOperation.as: 244]
в mx.rpc :: AbstractInvoker/http: //www.adobe.com/2006/flex/mx/internal :: resultHandler() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AbstractInvoker.as: 318]
at mx.rpc :: Responder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ Responder.as: 56]
в mx.rpc :: AsyncRequest/confirm() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ AsyncRequest.as: 84]
в NetConnectionMessageResponder/resultHandler() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ messaging \ channels \ NetConnectionChannel.as: 552]
в mx.messaging :: MessageResponder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ messaging \ MessageResponder.as: 235]
Журнал ошибок с использованием Character :: modStats (...)
Ошибка: Ошибка # 1034: Ошибка типа Coercion: невозможно преобразовать valueObjects :: Character $ в пространство имен.
at views :: char_panel/updateStats() [C: \ Users \ Zebrah \ Rotr \ Rotr \ src \ views \ char_panel.mxml: 23]
at views :: char_panel/onStatsResult() [C: \ Users \ Zebrah \ Rotr \ Rotr \ src \ views \ char_panel.mxml: 39]
на flash.events::EventDispatcher/dispatchEventFunction ()
на flash.events::EventDispatcher/dispatchEvent ()
в mx.rpc :: CallResponder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ CallResponder.as: 122]
в mx.rpc :: AsyncToken/http: //www.adobe.com/2006/flex/mx/internal :: applyResult() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AsyncToken.as: 239]
в mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ тх \ RPC \ события \ ResultEvent.as: 207]
в mx.rpc :: AbstractOperation/http: //www.adobe.com/2006/flex/mx/internal :: dispatchRpcEvent() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AbstractOperation.as: 244]
в mx.rpc :: AbstractInvoker/http: //www.adobe.com/2006/flex/mx/internal :: resultHandler() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ \ RPC AbstractInvoker.as: 318]
at mx.rpc :: Responder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ Responder.as: 56]
в mx.rpc :: AsyncRequest/confirm() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ AsyncRequest.as: 84]
в NetConnectionMessageResponder/resultHandler() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ messaging \ channels \ NetConnectionChannel.as: 552]
в mx.messaging :: MessageResponder/result() [E: \ dev \ 4.5.1 \ frameworks \ projects \ rpc \ src \ mx \ messaging \ MessageResponder.as: 235]
Заранее благодарю всех, кто до сих пор в этой подсказке кричит: D я бы оценил любые предложения, которые вы можете сделать.