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