動態建立MovieClip指定滑鼠事件

2021-08-25 03:24:06 字數 1318 閱讀 8281

[1b]如何為動態建立的movieclip指定滑鼠事件[/1b]

[1b]1. 正常情況下,可以直接通過設定事件處理器指定事件,下面是乙個例子[/1b]

imagemc = maincontainer.createemptymovieclip("imagemc",1);

with (imagemc)

imagemc.onrelease = function()

[1b]2. 如果這個movieclip建立以後,執行了loadmovie操作[/1b],比如,載入了乙個,上面的方法就無效了。

([color="#ff0000"][1b]注[/1b][/color]

:用其他通用的事件處理器繫結方法,也會無效的,在經過n次的失敗後和一番調查後,終於在flash的幫助裡發現了一條資訊)

「將事件處理函式和 loadmovie(movieclip.loadmovie 方法)一起使用,其結果是無法預知的。如果使用 on() 將事件處理函式附加到按鈕,或是使用諸如 onpress(movieclip.onpress 處理函式)的事件處理函式方法建立動態處理函式,然後呼叫 loadmovie(),則在載入新內容之後,事件處理函式將不再可用。然而,如果使用 onclipevent 處理函式或 on 處理函式將事件處理函式附加到影片剪輯,然後對該影片剪輯呼叫 loadmovie(),則在載入新內容之後,事件處理函式將仍然可用。」

真是無語了。flash官方一面鼓勵開發者,不要將**寫到物件裡,應該寫到外部actionscript檔案裡。可是,onclipevent()和 on()就是典型的將**寫到物件裡,在flash的另一頁幫助裡,很清楚的抵制這種寫法。那麼如果,在純.as檔案裡,還有辦法給loadmovie以後的movieclip新增事件麼。

又經過一番調查,終於發現可以用以下方法解決,既可以解決這個問題,解決方式也比較優雅,就是借助moviecliploader.

imagemc = maincontainer.createemptymovieclip("imagemc",1);

"e:\\1.jpg");        //不能用這種方法

在mcllistener的evt物件裡,設定onpress事件。問題解決!

給動態建立的控制項指定事件

1.先宣告dialogfield變數,記住需要指定事件的控制項使用formstringcontrol 2.在dialog事件中建立相關控制項,注意dialogfield與formstringcontrol的不同之處。formstringcontrol需要指定name 3.在dialogpostrun...

ELK logstash 動態指定動態模板

基於 es 7.10.x 通過logstash寫到es的資料,es 預設匹配logstash 的模板,並且 索引 index 名稱也會自動加上logstash 預設的 logstash 模板為 get template logstash string string match properties ...

mybatis 動態指定表

在mybatis 的動態sql中我們常用的是 來指定我們需要動態填入的資料 insert insert into t news category,title,content,url values int inserttest tnews news select select from t news ...