Hi there! Since I don't have much time for my project, I wanted to utilize the GFxUDKFrontEnd for my menu. I'm just learning UnrealScript and don't know the first thing about ActionScript, and up until now, I didn't need to.
My project requires the user to input a name and the dialog that would fit best for this is the GFxUDKFrontEnd_PasswordDialog.uc found in UTGame. The problem is: the input CLIKWidget isn't recognized by the WidgetInitialized event.
This is all in the UDK, I'll show you what I mean and hope somebody can help:
First the relevant stuff from the GFxUDKFrontEnd_PasswordDialog.uc
When you open up this class, the first thing you need to do is to fix a bug, that someone left there. At the end of WidgetInitialized() it should be if (!bWasHandled). The exclamation mark is missing and thus all the widgets that haven't been handled yet, will apparently stay that way. So a minor bug, no problem, but annoying. That's what betas are for, right?
But the real problem is that the 'item1' case isn't handled! And so PasswordRendererMC and PasswordTextField stay NONE.
If you fixed the small bug I mentioned, uncomment the `log statement and bring up the dialog somehow, you get something like this in the log:
I included the warnings as an example to show you, that PasswordTextField & PasswordRendererMC are NONE. You can see that 'textinput' is recognized inside of item1, but item1 itself doesn't show up as a widget. I just can't figure out why that is. Some more intel:
udk_assets.swf
item1 is the instance name of the movieclip/component menu_item_password that has this class assigned: com.scaleform.udk.controls.MultiControlItemRendere r.
This component resides inside a movieclip menu_list_password (class gfx.core.UIComponent) and that all is imported by the udk_dialog_password.swf.
Sooooo, anyone can find the culprit? PLEASE
My project requires the user to input a name and the dialog that would fit best for this is the GFxUDKFrontEnd_PasswordDialog.uc found in UTGame. The problem is: the input CLIKWidget isn't recognized by the WidgetInitialized event.
This is all in the UDK, I'll show you what I mean and hope somebody can help:
First the relevant stuff from the GFxUDKFrontEnd_PasswordDialog.uc
Code:
class GFxUDKFrontEnd_PasswordDialog extends GFxUDKFrontEnd_Dialog; /** Reference to the password renderer. */ var GFxClikWidget PasswordRendererMC; /** Reference to the input textField within the password renderer. */ var GFxObject PasswordTextField; ///////////////////// // all the functions ///////////////////// event bool WidgetInitialized( name WidgetName, name WidgetPath, GFxObject Widget ) { local bool bWasHandled; bWasHandled = false; // `log("GFxUDKFrontEnd_PasswordDialog: " @ WidgetName @ " : " @ WidgetPath @ " : " @ Widget); switch(WidgetName) { case ( 'item1' ): //NOTE: 'item1' isn't recognized if ( PasswordRendererMC == none ) { PasswordRendererMC = GFxClikWidget(Widget); PasswordRendererMC.SetString("label", "PASSWORD:"); PasswordTextField = GFxClikWidget(PasswordRendererMC.GetObject("textinput", class'GFxClikWidget')); bWasHandled = true; } break; ///////////////////// // some more cases ///////////////////// default: break; } if (!bWasHandled) //NOTE: in the UDK there is actually a bug here (MISSING EXCLAMATION MARK ! ) { bWasHandled = Super.WidgetInitialized(WidgetName, WidgetPath, Widget); } return bWasHandled; } defaultproperties { // Password Dialog SubWidgetBindings.Add((WidgetName="item1",WidgetClass=class'GFxClikWidget')) }
But the real problem is that the 'item1' case isn't handled! And so PasswordRendererMC and PasswordTextField stay NONE.

If you fixed the small bug I mentioned, uncomment the `log statement and bring up the dialog somehow, you get something like this in the log:
ScriptLog: GFxUDKFrontEnd_PasswordDialog: Dialog : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog : GFxObject_525
ScriptLog: GFxUDKFrontEnd_PasswordDialog: Back : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back : GFxClikWidget_55
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back.btn : GFxObject_527
ScriptLog: GFxUDKFrontEnd_PasswordDialog: join : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join : GFxObject_528
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join.btn : GFxObject_529
ScriptLog: GFxUDKFrontEnd_PasswordDialog: textinput : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.item1.textinput : GFxObject_530
ScriptLog: GFxUDKFrontEnd_PasswordDialog: popup_title : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.popup_title : GFxObject_531
ScriptLog: GFxUDKFrontEnd_PasswordDialog: Back : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back : GFxClikWidget_62
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back.btn : GFxObject_600
ScriptLog: GFxUDKFrontEnd_PasswordDialog: join : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join : GFxObject_601
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join.btn : GFxObject_602
ScriptLog: GFxUDKFrontEnd_PasswordDialog: textinput : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.item1.textinput : GFxObject_614
ScriptWarning: Accessed None 'PasswordTextField'
GFxUDKFrontEnd_PasswordDialog UDKFrontEndMap.TheWorld:PersistentLevel.Main_Seque nce.GFxUDKFrontEnd_0.GFxUDKFrontEnd_PasswordDialog _0
Function UTGame.GFxUDKFrontEnd_PasswordDialog:GetPassword:0 027
ScriptWarning: Accessed None 'PasswordRendererMC'
GFxUDKFrontEnd_PasswordDialog UDKFrontEndMap.TheWorld:PersistentLevel.Main_Seque nce.GFxUDKFrontEnd_0.GFxUDKFrontEnd_PasswordDialog _0
Function UTGame.GFxUDKFrontEnd_PasswordDialog: DisableSubComponents:0018
ScriptLog: GFxUDKFrontEnd_PasswordDialog: Back : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back : GFxClikWidget_55
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back.btn : GFxObject_527
ScriptLog: GFxUDKFrontEnd_PasswordDialog: join : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join : GFxObject_528
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join.btn : GFxObject_529
ScriptLog: GFxUDKFrontEnd_PasswordDialog: textinput : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.item1.textinput : GFxObject_530
ScriptLog: GFxUDKFrontEnd_PasswordDialog: popup_title : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.popup_title : GFxObject_531
ScriptLog: GFxUDKFrontEnd_PasswordDialog: Back : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back : GFxClikWidget_62
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.back.btn : GFxObject_600
ScriptLog: GFxUDKFrontEnd_PasswordDialog: join : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join : GFxObject_601
ScriptLog: GFxUDKFrontEnd_PasswordDialog: btn : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.join.btn : GFxObject_602
ScriptLog: GFxUDKFrontEnd_PasswordDialog: textinput : _level0.manager.PasswordDialogContainer.PasswordDi alog.container.dialog.item1.textinput : GFxObject_614
ScriptWarning: Accessed None 'PasswordTextField'
GFxUDKFrontEnd_PasswordDialog UDKFrontEndMap.TheWorld:PersistentLevel.Main_Seque nce.GFxUDKFrontEnd_0.GFxUDKFrontEnd_PasswordDialog _0
Function UTGame.GFxUDKFrontEnd_PasswordDialog:GetPassword:0 027
ScriptWarning: Accessed None 'PasswordRendererMC'
GFxUDKFrontEnd_PasswordDialog UDKFrontEndMap.TheWorld:PersistentLevel.Main_Seque nce.GFxUDKFrontEnd_0.GFxUDKFrontEnd_PasswordDialog _0
Function UTGame.GFxUDKFrontEnd_PasswordDialog: DisableSubComponents:0018
udk_assets.swf
item1 is the instance name of the movieclip/component menu_item_password that has this class assigned: com.scaleform.udk.controls.MultiControlItemRendere r.
This component resides inside a movieclip menu_list_password (class gfx.core.UIComponent) and that all is imported by the udk_dialog_password.swf.
Sooooo, anyone can find the culprit? PLEASE
Comment