Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 217
  • Last Modified:

Flash Vertical Scroller

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
coolispaul
Asked:
coolispaul
  • 3
1 Solution
 
Aneesh ChopraCommented:
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
 
Aneesh ChopraCommented:
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
 
crooksy88Commented:
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
 
coolispaulAuthor Commented:
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
 
Aneesh ChopraCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now