-
how do I use unloadAndStop FLV?
I have several buttons which load an external swf into a loader.
Here is the code for three of the buttons:
Code:
reelButton.addEventListener(MouseEvent.CLICK, reel);
function reel(event:MouseEvent):void {
var reelLoader:Loader = new Loader();
addChild(reelLoader);
var url:URLRequest = new URLRequest("reel.swf");
reelLoader.load(url);
}
studioButton.addEventListener(MouseEvent.CLICK, studio);
function studio(event:MouseEvent):void {
var studioLoader:Loader = new Loader();
addChild(studioLoader);
var url:URLRequest = new URLRequest("studio.swf");
studioLoader.load(url);
}
faqButton.addEventListener(MouseEvent.CLICK, faq);
function faq(event:MouseEvent):void {
var faqLoader:Loader = new Loader();
addChild(faqLoader);
var url:URLRequest = new URLRequest("faq.swf");
faqLoader.load(url);
}
The site is temporarily posted here MarkAC.com
As you can see the "reelButton" loads a swf with video and audio.
The problem is that the audio from the "reel" page continues to play when I load a new page.
How would modify this code in order to implement the "unloadAndStop" function in AS3 so that when I click on the "studioButton" and the "faqButton" the sound which was loaded from the "reelButton" will unload and Stop?
-
Got it!
Code:
var contentLoader:Loader = new Loader();
addChild(contentLoader);
reelButton.addEventListener(MouseEvent.CLICK, reel);
studioButton.addEventListener(MouseEvent.CLICK, studio);
faqButton.addEventListener(MouseEvent.CLICK, faq);
function reel(event:MouseEvent):void {
loadURL("reel.swf");
}
function studio(event:MouseEvent):void {
loadURL("studio.swf");
}
function faq(event:MouseEvent):void {
loadURL("faq.swf");
}
function loadURL(url:String):void {
contentLoader.unloadAndStop();
var request:URLRequest = new URLRequest(url);
contentLoader.load(request);
}
I also had to remember to set the publish settings to Flash Player 10
-
You have no idea how much this one post has just helped me... I love you, man!
-
I know!
I looked all over for an answer to this problem. I posted on 4 different flash forums and then posted the answer on all 4 so the word should be out now.
-
Hi. Please please help me on this.
I'm using very similar code to the code above and it works a treat for loading external swfs containing video....one thing though is that when my external swfs contain a preloader it seems to mess the whole thing up. I see in darkradio's site www.markac.com he has a preloader for each of the external swfs and it works fine. Can someone please tell me how that is done? Thank you.
Here is the code i'm using for my preloader:
stop();
//Preloader Action Script
loaderInfo.addEventListener (ProgressEvent.PROGRESS, plLoading);
function plLoading(event:ProgressEvent) :void {
var pcent:int=event.bytesLoaded/event.bytesTotal*100;
//loadbar_mc is the name of the load bar movie clip instance
loadbar_mc.scaleX=pcent/100;
//percentDone_dtext is the name of the dynamic text box that
//displays the percentage
percentDone_dtext.text=String(pcent) + "%";
if(pcent==100) {
gotoAndPlay(2);
}
}
and here's my code for the main swf's navigation:
function gallery(event:MouseEvent):void {
loadURL("pageGallery.swf");
contentLoader.x = 50;
contentLoader.y = 180;
}
function links(event:MouseEvent):void {
loadURL("pageLinks.swf");
contentLoader.x = 50;
contentLoader.y = 180;
}
function contact(event:MouseEvent):void {
loadURL("pageContact.swf");
contentLoader.x = 50;
contentLoader.y = 180;
}
function loadURL(url:String):void {
contentLoader.unloadAndStop();
var request:URLRequest = new URLRequest(url);
contentLoader.load(request);
}
gallery_mc.addEventListener(MouseEvent.CLICK, gallery);
links_mc.addEventListener(MouseEvent.CLICK, links);
contact_mc.addEventListener(MouseEvent.CLICK, contact);
-
Thanks darkradio, that code works for me except for one part.
The error I'm getting is:
1061: Call to a possibly undefined method unloadAndStop through a reference with static type flash.display:Loader.
When I change "unloadAndStop" to just "unload" I don't get any errors, however my videos will overlap. Why isn't unloadAndStop working?
It feels like I'm missing something easy here, anyone got any ideas?
Last edited by browntimmy; 04-26-2009 at 02:53 AM.
-
Nevermind, stupid mistake. I changed the publish settings to Flash Player 10 once but didn't save it and it went back to 9, I should have doublechecked before posting. Now it works.
-
-
darkradio....thank you sooooo much. I've been searching for something like UnloadAndStop for 2 weeks now. Why is it so difficult to find this basic info??
thanks!!!!
-
Hi darkRadio I've done your example but my loaded swf still there leaking my memory out, It is amazing, I've been dealing with this for a month, I've changed my CS to 4 in other to use the unloadAndStop method but nothing seem to work in order to totally remove from memory the loaded swf, even with your example the swf is stuck there.
I've made and SWF for an example with an ADDED_TO_STAGE and REMOVE_FROM_STAGE listeners, plus a destroy function that destroy the listener and objects.
This is the code on the swf that will be loaded.
Code:
addEventListener(Event.ADDED_TO_STAGE, addedHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
var logo_mc:MovieClip = new LogoMc();
function addedHandler(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, addedHandler);
initAnimation();
}
function removedHandler(evt:Event):void
{
removeEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
//Here comes the destroy function
destroy();
}
function initAnimation():void
{
addChild(logo_mc);
logo_mc.x = 100;
logo_mc.y = 200;
logo_mc.addEventListener(Event.ENTER_FRAME, logoMove);
}
function logoMove(evt:Event):void
{
logo_mc.x += 10;
}
function destroy():void
{
logo_mc.removeEventListener(Event.ENTER_FRAME, logoMove);
logo_mc = null;
}
Well then I named this swf as "myTestSwf.swf", and in the main movie that will load this example I've applied your approach with an unload button.
Code:
var contentLoader:Loader = new Loader();
addChild(contentLoader);
loadButton_btn.addEventListener(MouseEvent.CLICK, loadMySwf, false, 0, true);
unloadButton_btn.addEventListener(MouseEvent.CLICK, unLoadMySwf,false, 0, true);
function loadMySwf(evt:MouseEvent):void
{
loadURL("mySwfTest.swf");
}
function loadURL(url:String):void
{
contentLoader.unloadAndStop();
var request:URLRequest = new URLRequest(url);
contentLoader.load(request);
}
function unLoadMySwf(evt:MouseEvent):void
{
if(contentLoader.content)
{
contentLoader.unloadAndStop();
}
}
Event thou that this is the most simple example of a SWF with an destroy function, an unloadAndStop method and weak references, the F&$$&%$% swf still there , good grief!, what else can I do?, why this swf doesn’t get away?, why the GC doesn’t take care of it?.
Sorry for the multiple question but really I’m totally frustrated with this memory leaking and I cannot find the solution.
Thanks for any insight on this one.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|