UDN
Search public documentation:
CLIKINIListCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
如何从一个ini文件中填充一个列表
概述
在ActionScript(动作脚本)中填充一个滚动列表,或者下拉列表等非常简单。 假设您已经有带有“dropDownList”实例名称的下拉菜单,只要使用"dataProvider(数据供给器)"属性来填充这个列表。
dropDownList.dataProvider = ["row1", "row2", "row3", "row4", "row5", "row6", "row7", "row8"];
INI文件
我们会通过一个UDK配置文件来填充我们的列表,特别是DefaultUI.ini。打开那个文件并将以下内容添加到底部。 (注意: 我们假设这个包含您下拉菜单的类为SFMenuTutorial):
[UTGame.SFMenuTutorial] +ListOptions=(OptionName="Option 1",OptionLabel="Cool",OptionDesc="Something cool.") +ListOptions=(OptionName="Option 2",OptionLabel="Awesome",OptionDesc="Something awesome.") +ListOptions=(OptionName="Option 3",OptionLabel="Amazing",OptionDesc="Something amazing.")
Unrealscript(虚幻脚本)
现在,在您包含下拉滚动菜单列表的UnrealScript(虚幻脚本)文件中(我的叫做SFMenuTutorial),请确保在配置声明中包含了用户界面文件。 基本上这就是不包含"Default(默认)"部分的的配置文件的名称。 在"DefaultUI.ini"事例中,只象以下说明那样使用"UI"
class SFMenuTutorial extends GFxMoviePlayer config(UI);
/** The drop down menu */ var GFxClikWidget DropDown; /** Structure which defines each option in the list. */ struct Option { var string OptionName; var string OptionLabel; // This will be displayed in the list. var string OptionDesc; };
/** Aray of all list options, defined in DefaultUI.ini */ var config array<Option> ListOptions;
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) { switch(WidgetName) { case ('dropDownList'): DropDown = GFxClikWidget(Widget); SetUpDataProvider(DropDown); break; default: break; } return true; }
function SetUpDataProvider(GFxClikWidget Widget) { local byte i; local GFxObject DataProvider; local GFxObject TempObj; DataProvider = CreateArray(); switch(Widget) { case(DropDown): for (i = 0; i < ListOptions.Length; i++) { TempObj = CreateObject("Object"); TempObj.SetString("name", ListOptions[i].OptionName); TempObj.SetString("label", ListOptions[i].OptionLabel); // this will be displayed in the list TempObj.SetString("desc", ListOptions[i].OptionDesc); DataProvider.SetElementObject(i, TempObj); } } Widget.SetObject("dataProvider", DataProvider); }
defaultproperties { WidgetBindings.Add((WidgetName="dropDownList",WidgetClass=class'GFxClikWidget')) }
补遗
对一个下拉列表来说,所显示行的数量会自动变化。 所以您如果有不到5行的选项,比如说3,这个列表将显示3行。 它最多会显示5行,这样在"DropdownMenu.as'类中就很难写代码了,但是这个数值是可以修改的。 对滚动列表来说,您必须手动在虚幻脚本中指定一个rowCount(行的计数),如下:
MyScrollingList.SetFloat("rowCount",ListOptions.Length);