142 lines
3.4 KiB
Lua
142 lines
3.4 KiB
Lua
EventContext = FairyGUI.EventContext
|
||
EventListener = FairyGUI.EventListener
|
||
EventDispatcher = FairyGUI.EventDispatcher
|
||
InputEvent = FairyGUI.InputEvent
|
||
NTexture = FairyGUI.NTexture
|
||
Container = FairyGUI.Container
|
||
Image = FairyGUI.Image
|
||
Stage = FairyGUI.Stage
|
||
Controller = FairyGUI.Controller
|
||
GObject = FairyGUI.GObject
|
||
GGraph = FairyGUI.GGraph
|
||
GGroup = FairyGUI.GGroup
|
||
GImage = FairyGUI.GImage
|
||
GLoader = FairyGUI.GLoader
|
||
GMovieClip = FairyGUI.GMovieClip
|
||
TextFormat = FairyGUI.TextFormat
|
||
GTextField = FairyGUI.GTextField
|
||
GRichTextField = FairyGUI.GRichTextField
|
||
GTextInput = FairyGUI.GTextInput
|
||
GComponent = FairyGUI.GComponent
|
||
GList = FairyGUI.GList
|
||
GRoot = FairyGUI.GRoot
|
||
GLabel = FairyGUI.GLabel
|
||
GButton = FairyGUI.GButton
|
||
GComboBox = FairyGUI.GComboBox
|
||
GProgressBar = FairyGUI.GProgressBar
|
||
GSlider = FairyGUI.GSlider
|
||
PopupMenu = FairyGUI.PopupMenu
|
||
ScrollPane = FairyGUI.ScrollPane
|
||
Transition = FairyGUI.Transition
|
||
UIPackage = FairyGUI.UIPackage
|
||
Window = FairyGUI.Window
|
||
GObjectPool = FairyGUI.GObjectPool
|
||
Relations = FairyGUI.Relations
|
||
RelationType = FairyGUI.RelationType
|
||
UIPanel = FairyGUI.UIPanel
|
||
UIPainter = FairyGUI.UIPainter
|
||
TypingEffect = FairyGUI.TypingEffect
|
||
GTween = FairyGUI.GTween
|
||
GTweener = FairyGUI.GTweener
|
||
EaseType = FairyGUI.EaseType
|
||
|
||
fgui = {}
|
||
|
||
--[[
|
||
用于继承FairyGUI的Window类,同时派生的Window类可以继续被继承。可以重写的方法有(与Window类里的同名方法含义完全相同)
|
||
OnInit、DoHideAnimation、DoShowAnimation、OnShown、OnHide。
|
||
例子:
|
||
MyWinClass = fgui.window_class()
|
||
function MyWinClass:ctor()
|
||
print('MyWinClass-ctor')
|
||
self.contentPane = UIPackage.CreateObject("Basics", "WindowA")
|
||
end
|
||
function MyWinClass:OnShown()
|
||
print('MyWinClass-onShown')
|
||
end
|
||
local win = MyWinClass.New()
|
||
win:Show()
|
||
]]
|
||
function fgui.window_class(base)
|
||
local o = {}
|
||
|
||
local base = base or FairyGUI.Window
|
||
setmetatable(o, base)
|
||
|
||
o.__index = o
|
||
o.base = base
|
||
|
||
o.New = function(...)
|
||
local t = {}
|
||
setmetatable(t, o)
|
||
|
||
local ins = FairyGUI.Window.New()
|
||
tolua.setpeer(ins, t)
|
||
ins:SetLuaPeer(t)
|
||
if t.ctor then
|
||
t.ctor(ins,...)
|
||
end
|
||
|
||
return ins
|
||
end
|
||
|
||
return o
|
||
end
|
||
|
||
--[[
|
||
注册组件扩展,用于继承FairyGUI原来的组件类。
|
||
|
||
例子:
|
||
|
||
MyButton = fgui.extension_class(GButton)
|
||
fgui.register_extension("ui://包名/我的按钮", MyButton)
|
||
|
||
function MyButton:ctor() --当组件构建完成时此方法被调用
|
||
print(self:GetChild("n1"))
|
||
end
|
||
|
||
--添加自定义的方法和字段
|
||
function MyButton:Test()
|
||
print('test')
|
||
end
|
||
|
||
local get = tolua.initget(MyButton)
|
||
local set = tolua.initset(MyButton)
|
||
get.myProp = function(self)
|
||
return self._myProp
|
||
end
|
||
|
||
set.myProp = function(self, value)
|
||
self._myProp = value
|
||
self:GetChild('n1').text = value
|
||
end
|
||
|
||
local myButton = someComponent:GetChild("myButton") --这个myButton的资源是“我的按钮”
|
||
myButton:Test()
|
||
myButton.myProp = 'hello'
|
||
|
||
local myButton2 = UIPackage.CreateObject("包名","我的按钮")
|
||
myButton2:Test()
|
||
myButton2.myProp = 'world'
|
||
]]
|
||
|
||
function fgui.register_extension(url, extension)
|
||
FairyGUI.UIObjectFactory.SetExtension(url, typeof(extension.base), extension.Extend)
|
||
end
|
||
|
||
function fgui.extension_class(base)
|
||
local o = {}
|
||
o.__index = o
|
||
|
||
o.base = base or GComponent
|
||
|
||
o.Extend = function(ins)
|
||
local t = {}
|
||
setmetatable(t, o)
|
||
tolua.setpeer(ins,t)
|
||
return t
|
||
end
|
||
|
||
return o
|
||
end
|