关于as类引用mxml对象的问题
B.mxml
<mx:TextInput x="244" y="127" id="tbName"/>
A.as类里面想得到tbName.text,如果不通过B页面主动传递参数过来有什么办法。
public function Record():void
{
tbName.text="请输入视频文件名:";
}
直接这样写在B页面调用这个方法的时候会出错,提示tbName没有定义
[解决办法]
在 as代码中持一份mxml的对象
package com.asMxml.test
{
public class AsMxmlT
{
public var t:TestAsMxml;
public function AsMxmlT()
{
}
public function changeName():void{
t.labT.text="helloworld";
}
}
}
在mxml对象中
给as中的mxml中的对象赋值
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import com.asMxml.test.AsMxmlT;
internal function onClick():void{
var a:AsMxmlT=new AsMxmlT();
a.t=this;
a.changeName();
}
]]>
</mx:Script>
<mx:Panel x="103" y="134" width="343" height="200" layout="absolute">
<mx:Button x="51" y="99" label="Button" click="onClick();"/>
<mx:Label x="81" y="31" text="你好" width="196" id="labT"/>
</mx:Panel>
</mx:Application>
经测试是完全可以用的
[解决办法]
记事本改的格式可能不行.
分离的关键是 mxml文件里维持一个as类实例,
as类中维持一个mxml类实例,然后在as文件里访问控件时前面加上mxml实例名
如:mxmlDemo.lbName
希望有所帮助