Any method to know when the swf is close

0 views
Skip to first unread message

米理

unread,
Nov 15, 2009, 3:29:52 AM11/15/09
to 台灣 Adobe 使用者俱樂部
Do As3 has any event fire when the swf is close or unload?
I need to do some action defore the swf is destroy. Do anyone can
help?
Thanks

Ben Chang

unread,
Nov 15, 2009, 9:36:33 AM11/15/09
to au...@googlegroups.com
A 載入 B,B 可考慮監聽 REMOVED_FROM_STAGE 事件,

不過這要看你的 B 在 A 中的生命週期如何,是否有斷斷續續 移除 / 重現 在畫面上,才能決定是否適用

另外還有 UNLOAD 可用的樣子,你可以試試看



2009/11/15 米理 <deadman...@gmail.com>

米理

unread,
Nov 16, 2009, 4:17:53 AM11/16/09
to 台灣 Adobe 使用者俱樂部
Thx Ben,

That means i must load external swf to check to "close" for the flash
application?
Do flash provide any other method or event can directly listen on swf
"close"?



On Nov 15, 10:36 pm, Ben Chang <ben.rb.ch...@gmail.com> wrote:
> A 載入 B,B 可考慮監聽 REMOVED_FROM_STAGE<http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/event...>
> 事件,
>
> 不過這要看你的 B 在 A 中的生命週期如何,是否有斷斷續續 移除 / 重現 在畫面上,才能決定是否適用
>
> 另外還有 UNLOAD<http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/event...>
> 可用的樣子,你可以試試看
>
> 2009/11/15 米理 <deadmanhead1...@gmail.com>

milkmidi

unread,
Nov 16, 2009, 5:09:51 AM11/16/09
to 台灣 Adobe 使用者俱樂部
你指的close, 是關掉整個swf檔嗎
還是關掉網頁呢

Mike

unread,
Nov 16, 2009, 7:01:40 AM11/16/09
to au...@googlegroups.com
Hi,

i am not sure if this is what you want. but i did it with my understanding of your post.

package {

     import flash.display.Loader;

     import flash.display.Sprite;

     import flash.events.Event;

     import flash.events.TimerEvent;

     import flash.net.URLRequest;

     import flash.utils.Timer;

 

     public class Test_Loader extends Sprite

     {

           private var loader:Loader = new Loader();

           private var timer:Timer = new Timer(500, 1);

          

           private const swfPath:String = "swf/Clouds.swf";

          

           public function Test_Loader()

           {

                this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStageEventHandler);

           }

          

           private function onAddedToStageEventHandler(event:Event):void

           {

                loader.load(new URLRequest(swfPath));

                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteEventHandler);

                loader.contentLoaderInfo.addEventListener(Event.UNLOAD, onUnloadEventHandler);

                this.addChild(loader);

           }

          

           private function onCompleteEventHandler(event:Event):void

           {

                timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleteEventHandler);

                timer.start();

           }

          

           private function onTimerCompleteEventHandler(event:TimerEvent):void

           {

                timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleteEventHandler);

               

                if(loader.contentLoaderInfo.bytesTotal != 0)

                {

                     loader.unload();

                }              

           }

          

           private function onUnloadEventHandler(event:Event):void

           {

                trace("unloade finished");

           }

     }

}


Let me know if it is right, please!


mike



2009/11/16 米理 <deadman...@gmail.com>



--
Michael Yang
Cell: +27 76 595 9488
Email: mikeya...@gmail.com
MSN: mikey...@hotmail.com
Skype: jjyang293

米理

unread,
Nov 17, 2009, 1:33:42 AM11/17/09
to 台灣 Adobe 使用者俱樂部
Milkmidi,
對~ 我指的是關掉網頁呢

米理

unread,
Nov 17, 2009, 1:36:59 AM11/17/09
to 台灣 Adobe 使用者俱樂部
Thanks Michael,

但我想知道有道有沒有一些關掉網頁或關掉整個swf檔的event
> 2009/11/16 米理 <deadmanhead1...@gmail.com>
>
>
>
>
>
> > Thx Ben,
>
> > That means i must load external swf to check to "close" for the flash
> > application?
> > Do flash provide any other method or event can directly listen on swf
> > "close"?
>
> > On Nov 15, 10:36 pm, Ben Chang <ben.rb.ch...@gmail.com> wrote:
> > > A 載入 B,B 可考慮監聽 REMOVED_FROM_STAGE<
> >http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/event...>
> > > 事件,
>
> > > 不過這要看你的 B 在 A 中的生命週期如何,是否有斷斷續續 移除 / 重現 在畫面上,才能決定是否適用
>
> > > 另外還有 UNLOAD<
> >http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/event...>
> > > 可用的樣子,你可以試試看
>
> > > 2009/11/15 米理 <deadmanhead1...@gmail.com>
>
> > > > Do As3 has any event fire when the swf is close or unload?
> > > > I need to do some action defore the swf is destroy. Do anyone can
> > > > help?
> > > > Thanks
>
> --
> Michael Yang
> Cell: +27 76 595 9488
> Email: mikeyang1...@gmail.com
> MSN: mikeyang...@hotmail.com
> Skype: jjyang293

Vick Lee

unread,
Nov 17, 2009, 1:40:10 AM11/17/09
to au...@googlegroups.com
你可以利用JavaScript的window.onbeforeunload加上AS的ExternalInterface來配合做到

2009/11/17 米理 <deadman...@gmail.com>

Ben Chang

unread,
Nov 17, 2009, 1:42:00 AM11/17/09
to au...@googlegroups.com
恐怕無法確定能完整執行完 Flash 中想要執行的工作~

畢竟 瀏覽器關它的,Flash 執行它的,瀏覽器不會管 Flash 執行完才關閉,

所以 Flash 可能執行到一半就被瀏覽器給殺掉了~



2009/11/17 Vick Lee <vick...@gmail.com>

米理

unread,
Nov 18, 2009, 3:44:25 AM11/18/09
to 台灣 Adobe 使用者俱樂部
thank Vick, i will try that


On Nov 17, 2:40 pm, Vick Lee <vick....@gmail.com> wrote:
> 你可以利用JavaScript的window.onbeforeunload加上AS的ExternalInterface來配合做到
>
> 2009/11/17 米理 <deadmanhead1...@gmail.com>
Reply all
Reply to author
Forward
0 new messages