2009-12-10 119 views
0

我在Flex中有一些简单的功能,我想将我的一个变量发送到我的应用程序中使用的所有组件...问题是,有很多组件在我的应用程序,我不知道如何引用我的组件的ID ...基本上,有一个更简单的方法来做到这一点;创建循环发送变量到Flex中的其他组件

private function preloadStuff():void{ 

    // populating of bulkLoader var 

    var preloaderItemsList:XMLListCollection = new XMLListCollection(preloaderItems.children()); 
    var item:XML; 
    for each (item in preloaderItemsList){ 
     bulkLoader.add(item.path.toString(), {id:item.swfid.toString()}); 
    } 
    bulkLoader.addEventListener(BulkLoader.PROGRESS, bulkProgress); 
    bulkLoader.addEventListener(BulkLoader.COMPLETE, bulkComplete); 
    bulkLoader.start(); 

    // sending bulkLoader to all of components 
    // component ids are _01, _02, _03, etc. 

    _01.bulk = bulkLoader; 
    _02.bulk = bulkLoader; 
    _03.bulk = bulkLoader; 
    _04.bulk = bulkLoader; 
    _05.bulk = bulkLoader; 
    _06.bulk = bulkLoader; 
    _07.bulk = bulkLoader; 
    _08.bulk = bulkLoader; 
    _09.bulk = bulkLoader; 
    _10.bulk = bulkLoader; 
    _11.bulk = bulkLoader; 
    _12.bulk = bulkLoader; 
    _13.bulk = bulkLoader; 
    _14.bulk = bulkLoader; 
    _15.bulk = bulkLoader; 
    _16.bulk = bulkLoader; 
    _17.bulk = bulkLoader; 
    _18.bulk = bulkLoader; 
    _19.bulk = bulkLoader; 
    _20.bulk = bulkLoader; 
    _21.bulk = bulkLoader; 
    _22.bulk = bulkLoader; 
    _23.bulk = bulkLoader; 
    _24.bulk = bulkLoader; 
    _25.bulk = bulkLoader; 
    _26.bulk = bulkLoader; 
    _27.bulk = bulkLoader; 
    _28.bulk = bulkLoader; 
    _29.bulk = bulkLoader; 
    _30.bulk = bulkLoader; 
    _31.bulk = bulkLoader; 
    _32.bulk = bulkLoader; 
    _33.bulk = bulkLoader; 
    _34.bulk = bulkLoader; 

} 

非常感谢您的帮助!

回答

1

您可以引发一个自定义事件(包含气泡)并让所有组件听取它。

0

有这许多的解决方案,你可以简单地做一个解释,并存储要通过槽每个实例(我认为这是最好的方式),或者你可以实现这一点:

for (var i = 1; i <= lastId; i++) // being lastId the last id of you components 
    this["_" + (i < 10 ? "0"+i : i)].bulk = bulkLoader; 

this["property"] // is the same that this.property 

这是令人毛骨悚然,非常可怕,但它回答你的问题。