我在Flex中有一些简单的函数,我想把我的一个变量发送给我的应用程序中使用的所有组件……问题是我的应用程序中有很多组件,我不确定如何引用我的组件的id……基本上,有没有一种更简单的方法来做到这一点;
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;
}非常感谢您的帮助!
发布于 2009-12-11 01:26:45
您可以引发一个自定义事件(冒泡)并让您的所有组件侦听它。
发布于 2009-12-11 01:28:09
有很多解决方案,你可以简单地创建一个Dictionary并存储你想要传递的每个实例(我认为这是最好的方法),或者你可以直接实现:
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它很恐怖,很可怕,但它回答了你的问题。
https://stackoverflow.com/questions/1882559
复制相似问题