请问我是Flex和Actionscript 3的新手,但我知道它是一种OOP语言,我来自Java背景。我有一个类可以帮助我检查我的AIR应用程序的用户是否具有互联网连接,它直接包含在我的mxml类中时效果很好。想知道是否可以将它插入到actionscript类中,并在我希望的任何mxml组件类中重用它。
修改
package components
{
import air.net.URLMonitor;
import flash.events.StatusEvent;
import flash.net.*;
public class NetworkChecker
{
private var monitor:URLMonitor;
private var myURL = new URLRequest("http://www.adobe.com");
public function NetworkChecker()
{
myURL.method = "HEAD";
monitor = new URLMonitor(myURL);
monitor.start();
monitor.addEventListener(StatusEvent.STATUS, on_Connection);
}
public function on_Connection(event:StatusEvent):void
{
if(event.target.available == true)
{
trace("Internet Connection is available");
}
else
{
trace("No internet Connection");
}
}
}
}
请问如何从mxml组件调用此代码?当我将它直接包含在fx:Script标记中时,它运行良好。我需要知道我的mxml组件中的event.target.available是否为false ...
答案 0 :(得分:0)
将您的功能更改为:
public function on_Connection(event:StatusEvent):boolean
{
if(event.target.available == true)
{
trace("Internet Connection is available");
return true;
}
else
{
trace("No internet Connection");
return false;
}
}
或更好:
public function on_Connection(event:StatusEvent):boolean
{
return event.target.available;
}
注意:这假定event.target.available
已定义...
答案 1 :(得分:0)
将公共属性添加到Network Checker类
[Bindable]
public var available:Boolean = false;
然后
public function on_Connection(event:StatusEvent):void
{
this.available = event.target.available;
}
MXML
<fx:Declarations>
<components:NetworkChecker id="checker"/>
</fx:Declarations>
<s:Button label="Button" enabled="{checker.available}"/>
以及更多:
您应该在构造函数