【发布时间】:2011-02-07 07:51:16
【问题描述】:
我在 flex 桌面应用程序中创建了用于登录的小应用程序。我在其中引用了用于登录的 webservice 方法,为此创建了 Authentication 类。现在我想为手机号引用不同的 Textinput 值,为密码引用不同的 Textinput 值。在我的身份验证类中。
为此,我创建了 mxml 类的对象。使用它,我在 My Action 脚本类中获取了移动无值和密码值。
这是我的代码:-
SBTS.mxml 文件
<?xml version="1.0" encoding="utf-8"?>
<!-- usingas/AccessingPackagedClasses.mxml -->
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function login():void
{
var User:Authentication;
User = new Authentication();
User.authentication();
}
]]>
</mx:Script>
<mx:Panel width="100%" height="100%" layout="absolute">
<mx:TabNavigator width="100%" height="100%" id="viewstack2">
<mx:Form label="Login Form" id="loginform">
<mx:FormItem label="Mobile no:">
<mx:TextInput id="mobileno"/>
</mx:FormItem>
<mx:FormItem label="Password:">
<mx:TextInput displayAsPassword="true" id="password" />
</mx:FormItem>
<mx:FormItem>
<mx:Button label="Login" click="login()"/>
</mx:FormItem>
</mx:Form>
<mx:Form label="Child List">
<mx:Label width="100%" color="blue"
text="Select Child."/>
</mx:TabNavigator>
</mx:Panel>
</mx:WindowedApplication>
动作脚本类:-
package src
{
import adobe.utils.XMLUI;
import generated.webservices.*;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
public class Authentication
{
[Bindable]
private var childName:ArrayCollection;
[Bindable]
private var childId:ArrayCollection;
private var photoFeed:ArrayCollection;
private var arrayOfchild:Array;
private var newEntry:GetSBTSMobileAuthentication;
public var user:SBTSWebService;
public var mxmlobj:SBTS;
public function authentication():void
{
user =
new SBTSWebService();
if(user!=null)
{
user.addSBTSWebServiceFaultEventListener(handleFaults);
user.addgetSBTSMobileAuthenticationEventListener(authenticationResult);
newEntry =
new GetSBTSMobileAuthentication();
if(newEntry!=null)
{
mxmlobj =
new SBTS();
if(mxmlobj != null)
{
newEntry.mobile = mxmlobj.mobileno.text; // Getting error here error mention below
newEntry.password= mxmlobj.password.text;
}
user.getSBTSMobileAuthentication(newEntry);
}
}
}
public function handleFaults(event:FaultEvent):void
{
Alert.show(
"A fault occured contacting the server. Fault message is: " + event.fault.faultString);
}
public function authenticationResult(event:GetSBTSMobileAuthenticationResultEvent):void
{
if(event.result != null && event.result._return>0)
{
if(event.result._return > 0)
{
var UserId:int = event.result._return;
if(mxmlobj != null)
{
mxmlobj.loginform.enabled =
false;
mxmlobj.viewstack2.selectedIndex=1;
}
}
else
{
Alert.show(
"Authentication fail");
}
}
}
}
}
我收到此错误:-
TypeError:错误 #1009:无法访问空对象引用的属性或方法。
在 SBTSBusineesObject::Authentication/authentication()[E:\Users\User1\Documents\Fl ex Builder 3\SBTS\src\SBTSBusineesObject\Authentication.as:35]
在 SBTS/login()[E:\Users\User1\Documents\Flex Builder 3\SBTS\src\SBTS.mxml:12]
在 SBTS/___SBTS_Button1_click()[E:\Users\User1\Documents\Flex Builder 3\SBTS\src\SBTS.mxml:27]
请帮我消除这个错误。
【问题讨论】:
-
请用 pre, code 标签包装你的代码。在我看来,缺少一些 mxml 标记代码。
-
这一定是我见过的最糟糕的代码格式!
标签: apache-flex actionscript-3 mxml