Hello! Are you sure it's AS2 and not AS3? I'm trying to tweak the startmenu but I'm getting errors for missing class or interface.
The errors Simbolo=Sprite 49, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'MainSaveLoadList'. Simbolo=Sprite 56, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'SaveLoadPanel'. Simbolo=Sprite 61, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Shared.CenteredScrollingList'. Simbolo=Sprite 64, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'. Simbolo=Sprite 67, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'. Simbolo=Sprite 68, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'. Simbolo=Sprite 70, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'. Simbolo=Sprite 71, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.ScrollBar'. Simbolo=Sprite 75, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Shared.BSScrollingList'. Simbolo=Sprite 77, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Components.CrossPlatformButtons'. Simbolo=Sprite 100, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'StartMenu'. Simbolo=Sprite 38, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Components.CrossPlatformButtons'.
And thanks Casiotone for the instructions about Scaleform, I was stuck.
"- If you download the Scaleform/CLIK stuff, you'll want to add it to the classpath settings (settings button next to Actionscript version selection in the Publish Settings panel). It ought to be the first path, i.e. "E:UDKUDK-2011-10DevelopmentFlashCLIK". "
which registeres SetPlayerInfo, which recieves an array of arguments from the host application, which is the data you want. Look at the
StatsMenu.SetPlayerInfo
method, SetMeter then updates the interface with the given values. So its quite easy to listen to and fire custom events if you know the methods provided. I havent spend any time with Scaleform SDK yet so i cant say anything about that.
Successfully compiled TweenMenu and Map, but even with the closest fonts Futura Condensed Normal/Light labels look different - letter spacing is smaller and there are no text shadows)
Hey, great job extracting all this stuff. Finally there is the possibility of getting custom menus and hud components out with mods!
I'm new with flash (actually, zero experience with the stuff). I get the code just fine, but what do I need to do to recompile it? Also, I'm trying to find the component that handles the HUD, but no success yet.
I'm also looking for clues on how Skyrim handles the game data to the flash components. It's pretty obvious that it's event driven, but depending on how much data the game discloses to UI we could display script variables without much trouble. I'm pretty hyped about this, Skyrim so far feels much more open than oblivion in that regard.
From what I'm observing, though, it seems that the flash components are only displaying and not doing any input handling, so it's purely aesthetic. I think the most we could get done with this is custom displays and hijacking other events to update them (unless it has a general update method, but some of the menus don't seem to have one).
I found this in the stat menu, it's very interesting:
The stats menu is getting the health/magicka/stamina meters from BottomBarInstance, which seems to have access to some player statistics. I'm not sure how the statsmenu is reading the skill data, though; It's pretty confusing without knowing what exactly MovieClip does and where the data is coming from.
If anyone with some flash knowledge could figure this out, we might just have an unprecedent modding potential here
24 comments
The errors
Simbolo=Sprite 49, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'MainSaveLoadList'.
Simbolo=Sprite 56, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'SaveLoadPanel'.
Simbolo=Sprite 61, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Shared.CenteredScrollingList'.
Simbolo=Sprite 64, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'.
Simbolo=Sprite 67, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'.
Simbolo=Sprite 68, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'.
Simbolo=Sprite 70, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.Button'.
Simbolo=Sprite 71, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'gfx.controls.ScrollBar'.
Simbolo=Sprite 75, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Shared.BSScrollingList'.
Simbolo=Sprite 77, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Components.CrossPlatformButtons'.
Simbolo=Sprite 100, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'StartMenu'.
Simbolo=Sprite 38, layer=Layer 1, frame=1, riga 1Impossibile caricare la classe o l'interfaccia 'Components.CrossPlatformButtons'.
Fgkforever, stick around for us, man!
This is a very promising development!!!!
And thanks Casiotone for the instructions about Scaleform, I was stuck.
"- If you download the Scaleform/CLIK stuff, you'll want to add it to the classpath settings (settings button next to Actionscript version selection in the Publish Settings panel). It ought to be the first path, i.e. "E:UDKUDK-2011-10DevelopmentFlashCLIK". "
Just took a look at the decompiled stuff:
@elite5472
the communication between the swf and its host application is done via ExternalInterface
see gfx.io.GameDelegate, ie:
flash.external.ExternalInterface.addCallback(call, gfx.io.GameDelegate, gfx.io.GameDelegate.receiveCall);
flash.external.ExternalInterface.addCallback(respond, gfx.io.GameDelegate, gfx.io.GameDelegate.receiveResponse);
listeners are then set in StatsMenu, i.e:
gfx.io.GameDelegate.addCallBack(SetPlayerInfo, this, SetPlayerInfo);
which registeres SetPlayerInfo, which recieves an array of arguments from the host application, which is the data you want.
Look at the
StatsMenu.SetPlayerInfo
method, SetMeter then updates the interface with the given values.
So its quite easy to listen to and fire custom events if you know the methods provided. I havent spend any time with Scaleform SDK yet so i cant say anything about that.
I'm new with flash (actually, zero experience with the stuff). I get the code just fine, but what do I need to do to recompile it? Also, I'm trying to find the component that handles the HUD, but no success yet.
I'm also looking for clues on how Skyrim handles the game data to the flash components. It's pretty obvious that it's event driven, but depending on how much data the game discloses to UI we could display script variables without much trouble. I'm pretty hyped about this, Skyrim so far feels much more open than oblivion in that regard.
From what I'm observing, though, it seems that the flash components are only displaying and not doing any input handling, so it's purely aesthetic. I think the most we could get done with this is custom displays and hijacking other events to update them (unless it has a general update method, but some of the menus don't seem to have one).
I found this in the stat menu, it's very interesting:
var __reg5 = this.BottomBarInstance.BottomBarPlayerInfoInstance.PlayerInfoCardInstance;
StatsMenu.MagickaMeterBase = __reg5.MagickaMeterInstance;
StatsMenu.HealthMeterBase = __reg5.HealthMeterInstance;
StatsMenu.StaminaMeterBase = __reg5.StaminaMeterInstance;
The stats menu is getting the health/magicka/stamina meters from BottomBarInstance, which seems to have access to some player statistics. I'm not sure how the statsmenu is reading the skill data, though; It's pretty confusing without knowing what exactly MovieClip does and where the data is coming from.
If anyone with some flash knowledge could figure this out, we might just have an unprecedent modding potential here
and LOL @ all the doubleposting, happened to me a few times also, I wonder if the site's Author knows about it, seems like a common problem.