0 Üye ve 1 Ziyaretçi konuyu incelemekte.
local browsers = setmetatable({}, { __newindex = function(t, k, v) --> Unpack resources local browserSize = Vector2(unpack(v.size)) local browserPos = Vector2(unpack(v.pos)) v.browserElement = Browser(browserSize, v.isLocal, true) function v:onCreate() source:loadURL(v.path) end function v:ready() dxRender(k, function() dxDrawImage(browserPos, browserSize, v.browserElement, 0, 0, 0, tocolor(255,255,255,255), false) end) end function v:getElement() return self.browserElement or false end addEventHandler('onClientBrowserCreated', v.browserElement, v.onCreate) addEventHandler('onClientBrowserDocumentReady', v.browserElement, v.ready) --> TO DO --* Dynamic 3D Class (tex3d.fx) rawset(t, k, v) end,})function dxBrowser(namespace, w, h, x, y, islocal, url, is3D) if browsers[namespace] then return end w = w or 1 h = h or 1 x = x or 0 y = y or 0 islocal = islocal or true is3D = is3D or false --> Required variable url = url or error('URL parameter doesnt exists') browsers[namespace] = { pos = {x, y}, size = {w, h}, isLocal = islocal, path = 'http://mta/local/' .. url, is3D = is3D }return browsers[namespace]:getElement()end-- * Fonksiyon açılımı -- 32: dxBrowser isimli bir fonksiyon tanımlayıp değer girdilerini sırasıyla;-- namespace-- w (Genişlik)-- h (Yükseklik)-- x (Yatay vektörel pozisyon)-- y (Düşey vektörel pozisyon)-- isLocal (https://wiki.multitheftauto.com/wiki/CreateBrowser)-- url (https://wiki.multitheftauto.com/wiki/CreateBrowser)-- is3D (Şuanlık devredışı, opsiyonel bir değişken diyebiliriz)-- -- 33 - 44: Bu satırlar arasında fonksiyon girdilerini kontrol ediyoruz ve yanlış bir girdi varsa yeniden tanımlama yapıyoruz.-- 46: girdilerimizi "browsers" tablosuna yönlendiriyoruz bu sayede __newindex metodunu devreye soktuk. (bkz: 2.satır)-- 54: fonksiyon içerisinde tanımladığımız ":getElement" metodunu çağırdık, (bkz: 19.satır)-- * __newindex metodu-- 4 - 5: browserSize ve browserPos isimli iki adet local değişkeni iki düzlemli vektör olarak tanımladık.-- 7: Browser elementimizi oluşturduk ve bir dinamik değişkene tanımladık (v.browserElement buradaki değişken)-- (bkz: https://wiki.multitheftauto.com/wiki/CreateBrowser)---- 9 - 17: onCreate ve ready isimli iki adet metod oluşturduk, sırasıyla içlerinde yaptırdığımız işlemler;-- loadURL girdi elementi olan browser'a (tarayıcı) bir dosya yolu ekledik.-- ready metodu tanımlanan dosya yolu browser elementimize (v.browserElement) yüklendiğinde çalışıp ekrana yazma işlemini başlatıyor.---- 19: getElement isimli bir metod tanımladık ve "self" değerinde taşınan "browserElement" değişkenini döndürdük;-- nedir bu self? -- self = v değeridir. ---- 23 - 24: iki adet eylem oluşturduk, ready ve onCreate metodlarını çalıştırması için daha ayrıntılı bilgi için alttaki adreslere bakın.-- (bkz: https://wiki.multitheftauto.com/wiki/OnClientBrowserCreated)-- (bkz: https://wiki.multitheftauto.com/wiki/OnClientBrowserDocumentReady)---- 28: rawset fonksiyonunu kullanarak tüm işlemleri bitirdik ve memcache'e aldık bu tabirleri bilmiyorsanız kaynakçalarını alta yazıcağım.-- (bkz: https://stackoverflow.com/questions/23012040/rawset-function-in-lua)-- memcache: ddr3, ddr4 gibi tabir ettiğimiz RAM üzerinde verilerimizin saklanması burası bizim en hızlı ulaşabiliceğimiz lokasyon-- olduğundan ötürü performans için burayı tercih ettik istersek setData ile de kalıcı dosya düzenine alabilirdik.dxBrowser('deneme-browser', 500, 500, 100, 100, true, 'index.html', false)
Eline sağlık
yandı buralar.
Fark ne ?