Solved

Flash Vertical Scroller

Posted on 2008-06-25
5
205 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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

This is a very simple example to help those of you who are still migrating from AS2 to AS3 understand the redesigned event model in AS3. In AS2.0, event functions (that is, the function to be performed when an event is fired) were stored as a pro…
Sometimes you know that one object has a specific child in it, but you can't find the child. This happened to me when I was trying to code some actionScript to make a toolbar work with its embedded buttons.  My partner had created the toolbar usi…
In this tutorial viewers will learn how to create a basic motion tween animation in Flash Open a new document in Flash: Draw/import an image: Press CTRL + F8 to convert it into a graphic symbol: Select a frame (how long you want the tween to last): …
The goal of the tutorial is to teach the user how to use the auto adjust feature and what the different options do. When your video is not working right you can choose the auto adjust feature to help choose your settings.

747 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