_qk_locals = locals()
def register():
if "bpy" in _qk_locals:
print(">>> plugin's submodules reload")
from importlib import reload
_modules_loaded[:] = [reload(val) for val in _modules_loaded]
del reload
from bpy.utils import register_class
for mod in _modules_loaded:
for cls in mod.classes:
print('>>> register: ', cls.__name__)
register_class(cls)
本分析基於blender2.79b.
在__init__.py
檔案中插入輸出**, 檢視效果
在blender使用者配置的"add-ons"介面中, 勾選外掛程式.
1init.py模組載入
if "bpy" in locals():
print('reload...')
from importlib import reload
_modules_loaded[:] = [reload(val) for val in _modules_loaded]
del reload
現象: 判斷塊內**在反覆勾選中, 沒有觸發
原因:"bpy" in locals() -> false
2 在1的基礎上, 修改__init__.py檔案**
現象: 判斷塊內**在第一次重勾選時觸發
原因:"bpy" in locals() -> true
在__init__.py**修改之後, 模組第一次重載入時會觸發.
3 修改__init__.py模組之register()函式
_qk_locals = locals()
def register():
if "bpy" in _qk_locals:
print(">>> plugin's submodules reload")
from importlib import reload
_modules_loaded[:] = [reload(val) for val in _modules_loaded]
del reload
from bpy.utils import register_class
for mod in _modules_loaded:
for cls in mod.classes:
print('>>> register: ', cls.__name__)
register_class(cls)
現象: 判斷塊內**在反覆勾選中, 反覆觸發
原因:"bpy" in _qk_locals -> true
載入外掛程式(三)
接著 二 重新把vlc entry core 寫出來 int vlc entry core vlc set cb vlc set,void opaque 注意 va arg ap,module t submodule 這句,ap正好對應第四個引數,它是 module,因此module被建立出來了。後...
常用JS(JQ)外掛程式研究
在我們還沒有能力編寫外掛程式或是酷炫特效的時候,往往會選擇使用前輩編寫的外掛程式,網上的外掛程式庫更是琳琅滿目,但是文件甚少,肯定也有優劣之分,因此決定將平時使用過的外掛程式篩選分析後在此記錄!1 textillate.js 是一款效果炫酷的jquery和css3文字動畫特效庫外掛程式,它通過結合其...
載入外掛程式(二)之靜態載入
舉個例子來說明外掛程式的載入,以核心外掛程式為例,它在libvlc new中執行,流程如下 上圖中的vlc entry core是乙個函式指標,定義在modules.h中 core module int vlc entry core int void void int,void 那麼vlc entr...