Solved

Flash Vertical Scroller

Posted on 2008-06-25
5
206 Views
Last Modified: 2012-08-14
Hi,

I am trying to create a vertical scroller that moves up and down and contains external swf's from an cml file.

I have created an empty movie clip to hold the external swf's but cant get it to link out to a website. here is the code:

onClipEvent (load) {

for(i=1;i<=8;i++) {
  this.createEmptyMovieClip("container_mc"+i, this.getNextHighestDepth());
  //add spacing between each swf
  if(i>1) {
       this["container_mc"+i]._y +=(88*i-88);
  }
  this["container_mc"+i].loadMovie("swf"+i+".swf");
  trace(this["container_mc"+i]);
  this["container_mc"+i].onRelease = function() { trace("clicked");
        getURL('http://www.bbc.co.uk');
        }
 
}

Any ideas how to get something like this working?

Thanks
0
Comment
Question by:coolispaul
  • 3
5 Comments
 
LVL 34

Expert Comment

by:Aneesh Chopra
ID: 21865727
When a movieClilp is loading an external SWF,
code must wait to load the external SWF completely, before apply onRelease action on same movieClip.

what happening in your case:

loadMovie start loading SWF,
code attachs an onRelease event to the same movieClip,
and now SWF load completes and all events gets cleared to the movieClip.

below is the updated code, which actual loads swf into a child movieCLip and  onRelease event has been attached to the parent movieClip.
now this should work fine:

onClipEvent (load) {

	for(i=1;i<=8;i++) {

		var mc = this.createEmptyMovieClip("container_mc"+i, this.getNextHighestDepth());

		var child = mc.createEmptyMovieClip("child",4);

		if(i>1) {

		   mc._y +=(88*i-88); 

		}

		child.loadMovie("swf"+i+".swf");

		mc.onRelease = function() { trace("clicked");

		getURL('http://www.bbc.co.uk');

	}  

}

Open in new window

0
 
LVL 34

Accepted Solution

by:
Aneesh Chopra earned 500 total points
ID: 21865756
sorry,
previous code has syntax error, below is the fixed code:
onClipEvent (load) 

{

	for(i=1;i<=8;i++) 

	{

		var mc = this.createEmptyMovieClip("container_mc"+i, this.getNextHighestDepth());

		var child = mc.createEmptyMovieClip("child",4);

		if(i>1) 

		{

		   mc._y +=(88*i-88); 

		}

		child.loadMovie("swf"+i+".swf");

		mc.onRelease = function() 

		{ 

			trace("clicked");

			getURL('http://www.bbc.co.uk');

		}

	}  

}

Open in new window

0
 
LVL 13

Expert Comment

by:crooksy88
ID: 21865834
You code is correct, just needs a closing } right at the end.

Also this code needs to be added to a movieclip symbol on the timeline as it is a clipEvent.

So, create a new movieclip symbol if you haven't already got one, then drag it to the stage, make sure it is selected on the stage and paste your code into the actions panel.

Then test your movie, obviously having your series of swf1.swf, swf2.swf etc in the same directory.

MC



onClipEvent (load) {
 

for(i=1;i<=8;i++) {

  this.createEmptyMovieClip("container_mc"+i, this.getNextHighestDepth());

  //add spacing between each swf

  if(i>1) {

       this["container_mc"+i]._y +=(88*i-88); 

  }

  this["container_mc"+i].loadMovie("swf"+i+".swf");

  trace(this["container_mc"+i]);

  this["container_mc"+i].onRelease = function() { trace("clicked");

        getURL('http://www.bbc.co.uk');

        }

  

}

}

Open in new window

0
 

Author Comment

by:coolispaul
ID: 21865907
Great thanks - that works .

Also one other question related to this.

How can i get the scroller to loop? i.e i have teh stage that holds 4 external swfs at once. I have the parent movieclip moving vertically upwards so that all 8 swfs are shown but then it blanks out. How can i get external SWF1 to show straight after SWF8 and therby giving the impression they are looping?

Thanks
0
 
LVL 34

Expert Comment

by:Aneesh Chopra
ID: 21867893
with due respect,
this seems like another question which is not covered in current question details..

I request to open a new question with appropriate question heading, I will definitely provide the solution there.
Reason is,
Solution to nested questions are not searchable to other EE users.
IF we use proper question heading for each question,
Other users similar problem can easily search the question heading to get the solution.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I come across a lot of question about how to access things in the document class from a movieclip, or accessing something from a movieclip in the document class. It took me a while to figure this out but once I did it makes life so much easier. …
Here are some practices and techniques that can be adopted into your Flash/Flex application development process. Note: Not all "performance tips" provide an immediately-recognizable benefit.   This article does not include timing validation data,…
The goal of the tutorial is to teach the user what frame rate is, how to control it and what effect it has on the video.
This Micro Tutorial will teach to how to utilize bit rate in Adobe Flash Media Live Encoder.

929 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now