2013-08-21 43 views
0

Iam现在改变Flex。我只有2个查询:如何在不使用事件的情况下将数据从一个组件传递到其他组件

a)谁能告诉我如何将数据从一个组件传递到其他组件而不使用事件吗?我知道使用事件,我们可以发送数据..

b)Iam思考做移动应用程序Flexis,你能告诉我从哪里开始?

+0

a)如果您知道什么对象是您的接收者,为什么不设计其接口来接受设计的数据集?和b)从学习触摸事件开始,因为它们取代手机中的鼠标事件。 – Vesper

+0

@Vesper可以为我的查​​询提供一个示例a),并且是否有任何其他建议用于我的查询b) –

+0

此博客是否提供第一个问题的帮助? http://www.flextras.com/blog/index.cfm/2013/2/1/How-does-one-Flex-Component-talk-to-another-Flex-Component – JeffryHouser

回答

0

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/

0

要质疑,你可以使用回调或观察员,而不是事件

回调

假设我们有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]); 
     } 
    } 
} 

观察

下面是一些介绍观测,它看起来像某种方式回调。

Observer

相关问题