Iam现在改变Flex。我只有2个查询:如何在不使用事件的情况下将数据从一个组件传递到其他组件
a)谁能告诉我如何将数据从一个组件传递到其他组件而不使用事件吗?我知道使用事件,我们可以发送数据..
b)Iam思考做移动应用程序Flexis,你能告诉我从哪里开始?
Iam现在改变Flex。我只有2个查询:如何在不使用事件的情况下将数据从一个组件传递到其他组件
a)谁能告诉我如何将数据从一个组件传递到其他组件而不使用事件吗?我知道使用事件,我们可以发送数据..
b)Iam思考做移动应用程序Flexis,你能告诉我从哪里开始?
a)创建单例类。您可以在课程之间共享数据。
像这样
CustomSingleton.as
package modules.custom
{
public class CustomSingleton
{
private var _g_data1: String;
private var _g_data2: String;
private var _g_object1: Object;
public function CustomSingleton(internally:SingletonInternal)
{
super();
if(internally == null)
{
throw new Error("Must use getInstance() Method.");
}
}
public static function getInstance():CustomSingleton
{
return SingletonInternal.instance;
}
public function set g_data1(value:String):void
{
_g_data1 = value;
}
public function get g_data1():String
{
return _g_data1;
}
public function set g_data2(value:String):void
{
_g_data2 = value;
}
public function get g_data2():String
{
return _g_data2;
}
public function set g_object1(value:Object):void
{
_g_object1 = value;
}
public function get g_object1():Object
{
return _g_object1;
}
}
}
import modules.custom.CustomSingleton;
class SingletonInternal{
public static var instance:CustomSingleton
= new CustomSingleton(new SingletonInternal());
public function SingletonInternal(){}
}
Component1.as
public class Component1
{
private var singleton: CustomSingleton = CustomSingleton.getInstance();
public function hoge(): void
{
singleton.g_data1 = "aaa";
}
}
Component2.as
public class Component2
{
private var singleton: CustomSingleton = CustomSingleton.getInstance();
public function hoge(): void
{
trace(singleton.g_data1);
singleton.g_data1 = "bbb";
}
}
二)创建Hello World应用程序。
http://blog.air4android.com/2011/07/10/hello-world-air-for-android/
要质疑,你可以使用回调或观察员,而不是事件
回调
假设我们有A和B组,和实例是a和b。使用回调将使其不需要上下文。
b.callback = a.handler;
b.doSth();
// component define
Class A {
public function handler(param:*):void {//you can have your param here
}
}
class B {
private var _callback:Function;//here you can use a array to save multi callbacks.
public function set callback(value:Function):void {
_callback = value;
}
public function doSth():void {
//do something
if (_callback != null) {
_callback.apply(null, [some data]);
}
}
}
观察
下面是一些介绍观测,它看起来像某种方式回调。
a)如果您知道什么对象是您的接收者,为什么不设计其接口来接受设计的数据集?和b)从学习触摸事件开始,因为它们取代手机中的鼠标事件。 – Vesper
@Vesper可以为我的查询提供一个示例a),并且是否有任何其他建议用于我的查询b) –
此博客是否提供第一个问题的帮助? http://www.flextras.com/blog/index.cfm/2013/2/1/How-does-one-Flex-Component-talk-to-another-Flex-Component – JeffryHouser