changhong_newclient/lua_probject/base_project/FairyGUI.lua

142 lines
3.4 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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