Movie clip position
My questoin is, how can I setup an
alight(left,right,botton...) for a especific movie clip, whenever
the windows size.
I want this movie clip alight on the right side of the
windows either if the windows be resized.
an example here :
http://www.podmedialtd.com/
The city is aways on the right side.
Can anyone help me
Thank you.
I got it..
var stageListener = new Object ();
stageListener.onResize = function(){
test._x = (Stage.width / 2) + tste._width;
Stage.addListener(stageListener);
Where test is the variable name of your movie clip.
Similar Messages
-
Hi. I have six movie clips positioned across the stage and a following row of six movie clips below it. All of them move up the stage and are activated with a seperate key press and it works ok first time. The following times going up the stage, the fith and sixth movie clips are not visible on the first row, but are on the second row. Why and what can I do to fix it? The following code is what I am using for each clip - just repeated and named accordingly.
CODE: addEventListener(Event.ENTER_FRAME, leftbubbleMove);
function leftbubbleMove(e:Event):void {
if (leftbubble_mc.y > - 150) {
trace(leftbubble_mc.y);
leftbubble_mc.y -=2;
} else {
leftbubble_mc.y = 650
leftbubble_mc.gotoAndStop(1);
//leftbubble has reached the top
//trace("leftbubble has burst");
//leftbubble_mc.gotoAndPlay(2);
//leftbubble_mc.y < 50;
//code to change the color of a movieClip
var myColor:ColorTransform = leftbubble_mc.transform.colorTransform;
myColor.color = 0x00FFFF;
//detect when bubble has entered the target zone
if (leftbubble_mc.y < 100 && leftbubble_mc.y > 50) {
//code in here changes the left bubble when it
//enters the target zone.
//change back to original when gone past target zone.
trace("color change bubble");
leftbubble_mc.transform.colorTransform = myColor;
//leftbubble_mc.color = 0x00FFFF;
} else {
myColor.color = 0xFFFF99
leftbubble_mc.transform.colorTransform = myColor;
//detect when bubble has left the target zone
addEventListener(Event.ENTER_FRAME, leftbubbleaMove);
function leftbubbleaMove(e:Event):void {
if (leftbubblea_mc.y > - 150) {
trace(leftbubblea_mc.y);
leftbubblea_mc.y -=2;
} else {
leftbubblea_mc.y = 650
leftbubblea_mc.gotoAndStop(1);
//leftbubblea has reached the top
//trace("leftbubblea has burst");
//leftbubblea_mc.gotoAndPlay(2);
//leftbubblea_mc.y < 50;
//code to change the color of a movieClip
var myColor:ColorTransform = leftbubblea_mc.transform.colorTransform;
myColor.color = 0x00FFFF;
//detect when bubble has entered the target zone
if (leftbubblea_mc.y < 100 && leftbubblea_mc.y > 50) {
//code in here changes the leftbubblea when it
//enters the target zone.
//change back to original when gone past target zone.
trace("color change bubble");
leftbubblea_mc.transform.colorTransform = myColor;
//leftbubblea_mc.color = 0x00FFFF;
} else {
myColor.color = 0xFFFF99
leftbubblea_mc.transform.colorTransform = myColor;
//detect when bubble has left the target zone
AND ALSO
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler );
function keyDownHandler(e:KeyboardEvent):void {
if (e.keyCode == "Q".charCodeAt()) {
trace("Q has been pressed");
//place if to limit region of screen in which bubble can be popped here
//removeChild(leftbubble_mc)
if (leftbubble_mc.y < 100 && leftbubble_mc.y > 70) {
trace("leftbubble has been burst");
leftbubble_mc.gotoAndPlay(2);
if (e.keyCode == "Q".charCodeAt()) {
trace("Q has been pressed");
//place if to limit region of screen in which bubble can be popped here
//removeChild(leftbubble_mc)
if (leftbubblea_mc.y < 100 && leftbubblea_mc.y > 70) {
trace("leftbubblea has been burst");
leftbubblea_mc.gotoAndPlay(2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler );
if (e.keyCode == "G".charCodeAt()) {
trace("G has been pressed");
//place if to limit region of screen in which bubble can be popped here
//removeChild(left1bubble_mc)
if (left1bubble_mc.y < 100 && left1bubble_mc.y > 70) {
trace("left1bubble has been burst");
left1bubble_mc.gotoAndPlay(2);Please ignore this question - I had
code typing errors. Got it working. -
How do I stop a movie clip from looping
I am using Action Script 3 and the 'stop()' function is not working to stop my movie clips from looping continuously.
I have added the 'stop()' function to the last frame on the timeline of each movie clip.
I originally built the .fla file in Flash CS6 using Action Script 2 where it was working with no problems (I have since upgraded and don't have access to CS6 anymore).
I have all the separate movie clips positioned on Frame 1 of my main stage with the following script to start them playing:
Cigarette_Reveal.play();
KickTheHabit.play();
BallMove.play();
BallFlip.play();
Offer.play();
I want each of these movie clips to stop playing after one animation sequence is complete.
Please help!Turn on strict mode in your publish settings. This will allow you to see the compiler errors that are preventing the actionscript in your fla from compiling correctly.
-
Absolute X Y position of a movie clip
Hi
Can anyone tell me how to access the x y position of a
movieclip on stage.
I place each thumbnail image into a movie clip then I place
that movieclip into another movie clip.
I am trying to make a tooltip pop up appear over the image so
in my mouseout event I check the x, y position of the movieclip
that contains the thumbnail image. I get the x, y position of the
movie clip relative to the x,y of the outer movie clip and not the
stage.
Does anyone know how I can find the x,y position relative to
the stage?
Thank YoumovieClipName._x will give you your x coordinate, and _y will
give you the y coordinate. This is the point where the MovieClip's
reference point is on the stage. If you position the contents of
the MovieClip at 0,0, then this point will be the upper left corner
of your movie clip. If you center the reference point, then it will
be where the center of the MovieClip is on the stage.
Hope this helps -
Does anyone know the code for finding the global positioning of X & Y co-ordinates of a click of a button which is constantly rotating,
and then secondly the code for when you click on the button it displays a movie clip on top of it -(position of x & y when clicked) at the angle that you clicked it (so underneath the buttons are still rotating so other people can click them where they are)
to explain the context, I'm trying to design a mock up of a circular interactive table
when someone comes up to it and clicks on one of the buttons that are moving, it reads where the person clicked it and opens up a new box (movie clip) where they clicked it (at the angle) so its not upside down if you are at the top.
I've included my .fla file which shows the four buttons moving and a little diagram
explaining what I'm trying to do.yourbutton.addEventListener(MouseEvent.CLICK,f);
function f(e:MouseEvent){
var yourmc:MovieClip=new YourMC();
yourmc.x=e.stageX; // if you want the mouse position where the button was clicked. else use e.currentTarget.x and e.currentTarget.y
yourmc.y=e.stageY;
yourmc.rotation=e.currentTarget.rotation;
addChild(yourmc); -
Load Movie vs. container clip position with tooltips
Hi,
I have a .swf file with tool tips and dynamic colors on movie clips that I want to load into another movie.
s_1800.onRollOver = function (){
myTooltip.content = "Office #: 1800"+newline+"SF: 0";
var colorful = new Color ("_root.s_1800");
colorful.setRGB(0xb5282c);
myTooltip.showTooltip();
s_1800.onRollOut = function (){
myTooltip.hideTooltip();
When I do a loadMovie script:
loadMovie("2008_18.swf", 2);
the movie loads in fine but I can't control the position of it...(or can I)?
So, I loaded into a container clip:
createEmptyMovieClip("holder" , "100");
loadMovie("2008_18.swf" , "holder");
holder._x = -200;
holder._y = -200;
and the tool tips get thrown off (they don't rollover where they should), and the setRGB doesn't work anymore?
Any thoughts?
Thanks!!!in your loaded swf use:
this._lockroot=true;
to solve your color issue.
for your position issue it's not clear what you're doing to position your tooltips now but if you're referencing _root there too, the above will probably solve that issue, too. -
Positioning movie clips with AS
I'm using the following code to position some text clips on
the stage. But the weird thing is, the clips positions come out
differently than if I position them manually from within Flash.
For example, if I set the Y position of a clip to 250 in the
Properties Inspector, it comes out to be positioned at 250, but if
I even write in the code textBox._y = 250, it comes out differently
(about 10 pixels above 250).
Anyone have any idea what I'm talking about, or what's going
on here?
Thanks!
//space out the text clips
for ( i=2 ; i<8 ; i++ ){
textClipName = "text" + i;
this[textClipName]._y = ((i-1) * 250);
}check the registration point of your movieclip.
-
Need help returning correct name from a code created movie clip
Hello. I am an AS3 n00b with hopefuly a simple question I am designing a simple game in flash. This code creates an array of movie clips and asigns a picture to each one. It is a map screen. What I need is when I click on one of the created movie clips, I need it to return either the index of the clip in the array or the name of the clip. Basicaly anything I can use to tell them apart in the code. Here is the code:
import flash.display.MovieClip;
var MapLoader:Array = new Array();
var strJPGext:String = ".jpg";
var intContTileNumber:int;
var strContTilePath:String;
var intDistStartX:int = 63;
var intDistStartY:int = 64;
var intDistMultiplyY:int = 0;
var intDistMultiplyX:int = 0;
var intDistCount:int = 0;
var MapSquare:Array = new Array();
for (var i:int = 0; i < 729; i++)
//var MapSquare:MovieClip = new MovieClip();
MapSquare.push (new MovieClip());
MapSquare[i].x = intDistStartX + (intDistMultiplyX * 30);
MapSquare[i].y = intDistStartY + (intDistMultiplyY * 30);
MapSquare[i].name = "MapSquare" + i ;
addChild(MapSquare[i]);
intContTileNumber = i;
MapLoader.push (new Loader);
strContTilePath = intContTileNumber + strJPGext;
MapLoader[i].load(new URLRequest(strContTilePath));
MapSquare[i].addChild(MapLoader[i]);
intDistCount++;
intDistMultiplyX++;
if (intDistCount > 26){
intDistCount = 0;
intDistMultiplyX = 0;
intDistMultiplyY++;
stage.addEventListener(MouseEvent.CLICK, reportClick);
function reportClick(event:MouseEvent):void
trace("movieClip Instance Name = " + event.target.name);
Now all this works fine, it creates the map and assigns the correct picture and places them in the correct X,Y position and it is the correct grid of 27x27 squares. The problem is with the name, when I click on the movie clip, it returns "Instance2" or "Instance5" or whatever. It starts with 2 and then increases each number by 3 for each clip, so the first one is 2, then 5 then 8 and so on. This is no good. I need it to return the name that I assigned it
. If I put the code in trace(MapSquare[1]) it will return the name "MapSquare1" so I know the name was assigned, but it isnt returning.
Please assist
Thanks,
-redThanks for the resopnse,
I know I dont really need the name, I just need the index number of the array, but I cant figure out how to get the index name without specificaly coding for it. That is why in the listener event I use event.target.name because I dont know what movie clip is being clicked until it has been clicked on. Basically when a movie clip is clicked it needs to return which index of the array was clicked.
I could do it this way:
MapSquare[0].addEventListener(
MouseEvent.MOUSE_UP,
function(evt:MouseEvent):void {
trace("I've been clicked!");
MapSquare[1].addEventListener(
MouseEvent.MOUSE_UP,
function(evt:MouseEvent):void {
trace("I've been clicked!");
MapSquare[2].addEventListener(
MouseEvent.MOUSE_UP,
function(evt:MouseEvent):void {
trace("I've been clicked!");
... ect
but that is unreasonable and it kind of defeats the purpose of having the array in the first place. The code that each movie clip executes is the same, eventualy that index will be passed into a database and the data at that primary key will be retrieved and returned to the program. So I just need to know, when one of those buttons is clicked, which one was clicked and what is its index in the array.
I am a VB programer and in VB this is very easy, the control array automatically sends its own index into the function when one of the buttons is clicked. It seems simple enough, I just dont know how to do it in action script.
Thanks again,
-red -
How can I display a Movie clip from library on stage in AS3?
Hi,
I have a movie clip in my library and I would like to display it on the stage using AS3.
do I have to define it as a variable?Do I need to use this code: addchild(movieclip);
can I use the 'x' and 'y' to position it?
What would the code look like?
Ben.Great! it works well ! thanks
But I have another question, if I wanted to used the same movie clip but postion it at different x and y positions when a different btn is selected how could I do that?
Would I have to make a copy of the movie clip and give it a different name?
or is there an better way around it?
Ben. -
How to stop a movie clip moving
I'm not newbie to flash but I am newbie to coding using
actionscript!!!
I am trying to create a button that moves a movie clip
("content1") diagonally across the screen but once the movie clip
reaches a certain x co-ordinate I want it to stop and then when I
click another button I would like it to return to it's starting
position. At the moment the movie clip moves if I click one of the
buttons but as soon as I click another one it stops which it
shouldn't it should go back in the other direction. The other
problem is that once I've clicked a button I cant seem to get it to
stop moving once it reaches a certain _x position it just keeps on
moving off the stage.
Below is the script I have so far not including any
conditions to check if "content1" has reached it _x position
Could anyone help please!!!!
//on Right movie clip containing the button
onClipEvent (enterFrame) {
_root.content1._x += speedX;
_root.content1._y -= speedY;
//on Right button inside movie clip
on (press) {
speedX = 5.5;
speedY = 1.33;
//on Left movie clip containing the button
onClipEvent (enterFrame) {
_root.content1._x += speedX;
_root.content1._y -= speedY;
//on Left button inside movie clip
on (press) {
speedX = 5.5;
speedY = 1.33;Many thanks ClBeech!!!
I've tried the code you suggested but it doesn't seem to work
:0(
I'm working on a Mac using Flash Pro 8 which only has the
option to publish as 'actionscript 1.0 or 2.0' is the script you
supplied an actionscript 3.0?
Below is the script with the amendments, I've changed my
button instance names to match the script you supplied (left_btn /
right_btn)
stop();
import mx.transitions.Tween;
import mx.transitions.easing.Strong;
var rposX = 369;
//the ending x of the right position
var rposY = 84;
//the ending y of the right position
var lposX = 116;
//the ending x of the left position
var lposY = 154;
//the ending y of the left position
right_btn.onPress = function() {
new Tween(content1, '_x', Strong.easeOut, content1._x,
rposX, time, false);
new Tween(content1, '_y', Strong.easeOut, content1._y,
rposY, time, false);
left_btn.onPress = function() {
new Tween(content1, '_x', Strong.easeOut, content1._x,
lposX, time, false);
new Tween(content1, '_y', Strong.easeOut, content1._y,
lposY, time, false); -
How to stop a movie clip that is loaded dynamically
Hello Flash Forum,
I am using the loadmovie method to load a swf file into a
movie clip "container"
Code snippet:
var mc:MovieClip = this.createEmptyMovieClip("mc",1);
mc.loadMovie('bbc_module1.1.swf','bbc_audio',container.getNextHighestDepth(),
{_x:300.8, _y:240});
mc._lockroot = true;
The movie clip I load does not have a stop action in frame 1,
but comes up playing (audio and images). I am not using video. It
is a series of still images synced to the audio.
I would like to be able to load the movie clip, stop it from
playing, and by clicking buttons, get it to play, pause, etc like
the buttons and skin on the FLVPlayer.
Any tips on how to do this?
Thanks,
eholz1Many thanks ClBeech!!!
I've tried the code you suggested but it doesn't seem to work
:0(
I'm working on a Mac using Flash Pro 8 which only has the
option to publish as 'actionscript 1.0 or 2.0' is the script you
supplied an actionscript 3.0?
Below is the script with the amendments, I've changed my
button instance names to match the script you supplied (left_btn /
right_btn)
stop();
import mx.transitions.Tween;
import mx.transitions.easing.Strong;
var rposX = 369;
//the ending x of the right position
var rposY = 84;
//the ending y of the right position
var lposX = 116;
//the ending x of the left position
var lposY = 154;
//the ending y of the left position
right_btn.onPress = function() {
new Tween(content1, '_x', Strong.easeOut, content1._x,
rposX, time, false);
new Tween(content1, '_y', Strong.easeOut, content1._y,
rposY, time, false);
left_btn.onPress = function() {
new Tween(content1, '_x', Strong.easeOut, content1._x,
lposX, time, false);
new Tween(content1, '_y', Strong.easeOut, content1._y,
lposY, time, false); -
How to stop a slideshow and show another movie clip at the end?
Currently my slideshow is in a loop. At the end of last slideshow, I want to show another movie clip (End_mv) that's on another layer. How do I do that? My current scripts are below:
import fl.transitions.Tween;
import fl.transitions.easing.*;
//change scale on an image
var fadeTween:Tween;
//To slide in on X axis
var slideXTween:Tween;
//To slide in on Y axis
var slideYTween:Tween;
//To fade IN
var alphaTween:Tween;
//To get bigger on its X axis
var scaleXTween:Tween;
//To get bigger on its Y axis
var scaleYTween:Tween;
//var fadeTween:Tween;
//description place holder
var strDescrp:String;
//source place holder
var strSource:String;
//x poistion
var posX:Number;
//y position
var posY:Number;
//degree rotation
var degreeRot:Number;
// delay between slides
//const TIMER_DELAY:int = 5000;
var TIMER_DELAY:int = 5000;
// fade time between slides
const FADE_TIME:int = 3;
// reference to the current slider container
var currentContainer:Sprite;
// index of the current slide
var intCurrentSlide:int = -1;
// total slides
var intSlideCount:int;
// timer for switching slides
var slideTimer:Timer;
// slides holder
var sprContainer1:Sprite;
var sprContainer2:Sprite;
// slides loader
var slideLoader:Loader;
// url to slideshow xml
var strXMLPath:String = "lstHouse.xml";
// slideshow xml loader
var xmlLoader:URLLoader;
// slideshow xml
var xmlSlideshow:XML;
var txtField:TextField = new TextField();
var formatText:TextFormat = new TextFormat();
//start of sound section is for sound
var soundReq:URLRequest = new URLRequest("PaukenBrumfiel_AngelsOnHigh.mp3");
var sound:Sound = new Sound();
sound.load(soundReq);
sound.addEventListener(Event.COMPLETE, onComplete);
//end of sound section
function onComplete(event:Event):void
sound.play();
function init():void
// create new urlloader for xml file
xmlLoader = new URLLoader();
// add listener for complete event
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
// load xml file
xmlLoader.load(new URLRequest(strXMLPath));
// create new timer with delay from constant
slideTimer = new Timer(TIMER_DELAY);
// add event listener for timer event
slideTimer.addEventListener(TimerEvent.TIMER, switchSlide);
// create 2 container sprite which will hold the slides and
// add them to the masked movieclip
sprContainer1 = new Sprite();
sprContainer2 = new Sprite();
mcSlideHolder.addChild(sprContainer1);
mcSlideHolder.addChild(sprContainer2);
// keep a reference of the container which is currently
// in the front
currentContainer = sprContainer2;
function onXMLLoadComplete(event:Event):void
// create new xml with the received data
xmlSlideshow = new XML(event.target.data);
// get total slide count
intSlideCount = xmlSlideshow..image.length();
// switch the first slide without a delay
switchSlide(null);
function fadeSlideIn(e:Event):void {
// add loaded slide from slide loader to the
// current container
currentContainer.addChild(slideLoader.content);
// clear preloader text
//mcInfo.lbl_loading.text = "";
// fade the current container in and start the slide timer
// when the tween is finished
//Tweener.addTween(currentContainer, {alpha:1, time:FADE_TIME, onComplete:function() { slideTimer.start(); }});
//strSource = xmlSlideshow.image[intCurrentSlide].@src;
fadeTween = new Tween(currentContainer, "alpha", Regular.easeInOut, 0, 1, 2, true)
//scale = new Tween(currentContainer, "alpha", Regular.easeInOut, 0, 1, 2, true)
slideTimer.start()
onComplete:function();
function switchSlide(e:Event):void
// check, if the timer is running (needed for the
// very first switch of the slide)
if(slideTimer.running)
slideTimer.stop();
// check if we have any slides left and increment
// current slide index
if(intCurrentSlide + 1 < intSlideCount)
intCurrentSlide++;
// if not, start slideshow from beginning
else
intCurrentSlide = 0;
// check which container is currently in the front and
// assign currentContainer to the one that's in the back with
// the old slide
if(currentContainer == sprContainer2)
currentContainer = sprContainer1;
else
currentContainer = sprContainer2;
// hide the old slide
currentContainer.alpha = 0;
// bring the old slide to the front
mcSlideHolder.swapChildren(sprContainer2, sprContainer1);
strDescrp = xmlSlideshow.image[intCurrentSlide].@desc;
//strSource = xmlSlideshow.image[intCurrentSlide].@src;
//txtField.border = true;
//txtField.x = 0;
//txtField.y = 600;
txtField.width = 855;
txtField.height = 200;
//txtField.background = true;
//txtField.backgroundColor = 0xEE9A00;
txtField.alpha = 20;
txtField.text = strDescrp;
formatText.align = TextFormatAlign.CENTER;
//txtField.autoSize = TextFieldAutoSize.LEFT;
formatText.color = 0x000;
formatText.size = 30;
txtField.x = 0;
txtField.y = 550;
posX = 0;
posY = 0;
degreeRot = 0;
// create a new loader for the slide
slideLoader = new Loader();
// add event listener when slide is loaded
slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeSlideIn);
// load the next slide
slideLoader.load(new URLRequest(xmlSlideshow.image[intCurrentSlide].@src));
addChild(txtField);
txtField.setTextFormat(formatText)
// init slideshow
init();I got this error:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/swapChildren()
at University_Advancement_Holiday_Greeting2012_fla::MainTimeline/switchSlide()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
And here's the code:
// import tweener
//import caurina.transitions.Tweener;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.display.MovieClip;
//change scale on an image
var fadeTween:Tween;
//To slide in on X axis
var slideXTween:Tween;
//To slide in on Y axis
var slideYTween:Tween;
//To fade IN
var alphaTween:Tween;
//To get bigger on its X axis
var scaleXTween:Tween;
//To get bigger on its Y axis
var scaleYTween:Tween;
//var fadeTween:Tween;
//description place holder
var strDescrp:String;
//source place holder
var strSource:String;
//x poistion
var posX:Number;
//y position
var posY:Number;
//degree rotation
var degreeRot:Number;
// delay between slides
//const TIMER_DELAY:int = 5000;
var TIMER_DELAY:int = 5000;
// fade time between slides
const FADE_TIME:int = 3;
// reference to the current slider container
var currentContainer:Sprite;
// index of the current slide
var intCurrentSlide:int = -1;
// total slides
var intSlideCount:int;
// timer for switching slides
var slideTimer:Timer;
// slides holder
var sprContainer1:Sprite;
var sprContainer2:Sprite;
// slides loader
var slideLoader:Loader;
// url to slideshow xml
var strXMLPath:String = "lstHouse.xml";
// slideshow xml loader
var xmlLoader:URLLoader;
// slideshow xml
var xmlSlideshow:XML;
var txtField:TextField = new TextField();
var formatText:TextFormat = new TextFormat();
//var myEnding:MovieClip = stage.getChildByName('End_mc') as MovieClip;
//start of sound section is for sound
var soundReq:URLRequest = new URLRequest("PaukenBrumfiel_AngelsOnHigh.mp3");
var sound:Sound = new Sound();
sound.load(soundReq);
sound.addEventListener(Event.COMPLETE, onComplete);
//end of sound section
function onComplete(event:Event):void
sound.play();
function init():void
//reference my movie clip "End_mc" oon the stage and turn its visibility off
MovieClip(getChildByName('End_mc')).visible = false;
// create new urlloader for xml file
xmlLoader = new URLLoader();
// add listener for complete event
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
// load xml file
xmlLoader.load(new URLRequest(strXMLPath));
// create new timer with delay from constant
slideTimer = new Timer(TIMER_DELAY);
// add event listener for timer event
slideTimer.addEventListener(TimerEvent.TIMER, switchSlide);
// create 2 container sprite which will hold the slides and
// add them to the masked movieclip
sprContainer1 = new Sprite();
sprContainer2 = new Sprite();
mcSlideHolder.addChild(sprContainer1);
mcSlideHolder.addChild(sprContainer2);
// keep a reference of the container which is currently
// in the front
currentContainer = sprContainer2;
//function onXMLLoadComplete(e:Event):void
function onXMLLoadComplete(event:Event):void
// create new xml with the received data
xmlSlideshow = new XML(event.target.data);
// get total slide count
intSlideCount = xmlSlideshow..image.length();
// switch the first slide without a delay
switchSlide(null);
function fadeSlideIn(e:Event):void {
// add loaded slide from slide loader to the
// current container
currentContainer.addChild(slideLoader.content);
// clear preloader text
//mcInfo.lbl_loading.text = "";
// fade the current container in and start the slide timer
// when the tween is finished
//Tweener.addTween(currentContainer, {alpha:1, time:FADE_TIME, onComplete:function() { slideTimer.start(); }});
//strSource = xmlSlideshow.image[intCurrentSlide].@src;
fadeTween = new Tween(currentContainer, "alpha", Regular.easeInOut, 0, 1, 2, true)
//scale = new Tween(currentContainer, "alpha", Regular.easeInOut, 0, 1, 2, true)
slideTimer.start()
onComplete:function();
function switchSlide(e:Event):void
// check, if the timer is running (needed for the
// very first switch of the slide)
if(slideTimer.running)
slideTimer.stop();
// ADDED: Check if using sprContainer2 and at the last slide
//if ((currentContainer == sprContainer2) && (intCurrentSlide == intSlideCount))
trace("Current Slide: " + intCurrentSlide);
trace("SlideCount: " + intSlideCount);
if ((currentContainer == sprContainer2) && ((intCurrentSlide + 1) == intSlideCount))
// hide the slideshow (and other related elements, or remove them if desired)
//mcSlideHolder.visible = false;
// remove any clips directly inside slideshow (any timers/etc need to be stopped too)
while (mcSlideHolder.numChildren > 0)
mcSlideHolder.removeChildAt(0);
// I do see a var named 'sound' playing so you might want to:
//sound.stop();
//sound = null;
// etc any other slideshow-only elements to hide/remove..
// play your movie
MovieClip(getChildByName('End_mc')).visible = true;
MovieClip(getChildByName('End_mc')).play();
// check if we have any slides left and increment
// current slide index
if(intCurrentSlide + 1 < intSlideCount)
intCurrentSlide++;
// if not, start slideshow from beginning
else
intCurrentSlide = 0;
// check which container is currently in the front and
// assign currentContainer to the one that's in the back with
// the old slide
if(currentContainer == sprContainer2)
currentContainer = sprContainer1;
else
currentContainer = sprContainer2;
// hide the old slide
currentContainer.alpha = 0;
// bring the old slide to the front
mcSlideHolder.swapChildren(sprContainer2, sprContainer1);
strDescrp = xmlSlideshow.image[intCurrentSlide].@desc;
//strSource = xmlSlideshow.image[intCurrentSlide].@src;
//txtField.border = true;
//txtField.x = 0;
//txtField.y = 600;
txtField.width = 855;
txtField.height = 200;
//txtField.background = true;
//txtField.backgroundColor = 0xEE9A00;
txtField.alpha = 20;
txtField.text = strDescrp;
formatText.align = TextFormatAlign.CENTER;
//txtField.autoSize = TextFieldAutoSize.LEFT;
formatText.color = 0x000;
formatText.size = 30;
txtField.x = 0;
txtField.y = 550;
posX = 0;
posY = 0;
degreeRot = 0;
// create a new loader for the slide
slideLoader = new Loader();
// add event listener when slide is loaded
slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeSlideIn);
// add event listener for the progress
//slideLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
// load the next slide
slideLoader.load(new URLRequest(xmlSlideshow.image[intCurrentSlide].@src));
addChild(txtField);
txtField.setTextFormat(formatText)
// init slideshow
init(); -
Unloading a movie clip from a for statement
Hi,
I have this code:
//create empty movie clips to place bin top, flame and bin
bottom in that order
this.createEmptyMovieClip("holder_mc2",this.getNextHighestDepth());
this.createEmptyMovieClip("holder_mc",this.getNextHighestDepth());
this.createEmptyMovieClip("holder_mc1",this.getNextHighestDepth());
//attach movie clip/variables
var dsfInstance:DropShadowFilter = new DropShadowFilter(5,
45, 0x000000, 1, 10, 10);
var b:MovieClip =
holder_mc2.attachMovie("binTop_mc","binTop_mc",holder_mc2.getNextHighestDepth());
var a:MovieClip =
holder_mc1.attachMovie("binBottom_mc","binBottom_mc",holder_mc1.getNextHighestDepth());
//property values
a._x = 419;
a._y = 244;
a._width = 112.0
a._height = 140.0
b._x = 419;
b._y = 175;
b._width = 112.8;
b._height = 10.1;
a.filters = [dsfInstance];
//create for loop to place the flame particle on the stage
many times
for(i=0;i<200;i++){
//places in temporary movieclip t
var t:MovieClip =
holder_mc.attachMovie("flame","flame"+i,holder_mc.getNextHighestDepth());
// position the movieclip on the stage for y co-ordinates
t._y = 190;
t._x = Math.random()*80+(Stage.width/2+115);
//give the flame random sizes no larger than 80 pixels and no
smaller than 20
t._xscale = t._yscale = Math.random()*80 + 20;
//randomize the frame the movieclip is going to start in the
flame movie clip is 16 frame long so it will pick number between
that
//because math.random produces decimal values we round the
number using math.ceil to the high whole number
t.gotoAndPlay(Math.ceil(Math.random()*16));
what i want to do is remove the movieclip in the for loop off
the stage when i click on a button. i can manage to remove the
movie clips with the variables a and b but i cant do it with the
one in the for loop.
i put this code in the button:
on(release){
play();
stopAllSounds();
a.removeMovieClip();
b.removeMovieClip();
t.removeMovieClip();
Is there a way to do this?im so dumb! i figured it out.
i used the "holder_mc" the name of the empty movie clip.
holder_mc.removeMovieClip(); -
Attempt to move main timeline from inside a movie clip breaks menu buttons.
I am attempting to have the main timeline move from a stopped position over a movie clip to frame 1, where my start menu is.
The code I'm using does move the timeline but in doing so it somehow breaks the 4 buttons I have in frame 1.
My code in the movie clip:
stop()
function replayMovie(event:MouseEvent):void
MovieClip(parent).gotoAndStop(1);
Menu.addEventListener(MouseEvent.CLICK, replayMovie);
My code in frame 1 of the main timeline:
stop();
function bo(event:MouseEvent):void
gotoAndPlay(21)
SoundMixer.stopAll()
espesp.addEventListener(MouseEvent.CLICK, bo);
function ho(event:MouseEvent):void
gotoAndPlay(31)
SoundMixer.stopAll()
espeng.addEventListener(MouseEvent.CLICK, ho);
function yo(event:MouseEvent):void
gotoAndPlay(41)
SoundMixer.stopAll()
engesp.addEventListener(MouseEvent.CLICK, yo);
function go(event:MouseEvent):void
gotoAndPlay(51)
SoundMixer.stopAll()
engeng.addEventListener(MouseEvent.CLICK, go);
The error output when I use my Menu button at the end of the movie clip.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at SSubjunctiveProjNewgrounds_fla::MainTimeline/frame1()
at flash.display::MovieClip/gotoAndStop()
at SSubjunctiveProjNewgrounds_fla::Esp_5/replayMovie()
Any help would be greatly appreciated.For the sake of space, I'll leave out all the package declarations and class declarations and just talk about the functions.
First, the Game class, it has two functions. The first one is the constructor function and it launches at the beginning of the game: First the Game function:
public function Game():void
//Game code goes here
}//Game
We want to listen for someone to click the mouse on the MenuPage, so lets create a new MenuPage and add a listener to the button contiained within it.
public function Game():void
menuPage = new MenuPage;
menuPage.startButton.addEventListener(MouseEvent.CLICK, startGame);
addChild(menuPage);
}//Game
You will notice that before I declared a variable var menuPage:MenuPage, but that's all I did was declare it. I didn't really make a new instance of it, I just set aside space for it. In the first line within the Game function, I'm actually turning that variable into a new instance of a MenuPage.
We don't have a picture of this imaginary menuPage instance, but lets' assume that in our MenuPage MovieClip in the library, we created a SimpleButton called startButton. Here, I'm adding an EventListener that patiently waits for someone to click that button. Once we receive that event, Flash is told to call the startGame function.
As you get better at this, you'll get into custom events, and the eventListener for the button will exist in the MenuPage class file, or even in another class file that you create just for the button. Something like StartButton.as But for now, we can do it as above.
Now the startGame function:
public function startGame(evt:MouseEvent):void
//Remove the start Page
//Add the zombie
//Add the gun
}//startGame
And we'll replace those comments with real code. It follows along with what we just did above.
public function startGame(evt:MouseEvent):void
zombie = new Zombie;
addChild(zombie);
gun = new Gun;
addChild(gun);
And we also want to clean up some by removing the menuPage, and throwing out the eventListener.
public function startGame(evt:MouseEvent):void
zombie = new Zombie;
addChild(zombie);
gun = new Gun;
addChild(gun);
menuPage.startButton.removeEventListener(MouseEvent.Click,startGame);
removeChild(menuPage);
}//startGame
Now our Game class is complete.
The Zombie Class
public function zombieWalk(evt:Event):void
this.addEventListener(Event.ENTER_FRAME,zombieWalk);
this.x = this.x + 10;
}//zombieWalk
Notice we've added a function to the Zombie Class.
The first function adds an EventListener to the zombie. We can use the word this and actionScript knows we're talking about the zombie that the class is written for. This listener fires off every frame. If our FLA file is set to 12fps, then 12 times every second it will call on the zombieWalk function.
The zombie walk function moves the zombie 10 pixels to the right every time the function is called.
On a more advanced level, you'll want to add animation in the MovieClip to move the zombie legs. You'll also want to use Timer events to space out how often the funtion fires and not ENTER_FRAME events. And you'll want to use a static constant to establish how far the zombie moves. We have it now set to 10 pixels, but that can get irritating if we want to change that value later. But again, baby steps.
And finally, the Gun class
public function Gun():void
this.addEventListener(MouseEvent.CLICK, fireGun);
}//function
public function fireGun(evt:MouseEvent):void
this.gotoAndPlay(2);
}//fireGun
First we add an EventListener for when someone clicks on the gun. Once this happens, the listener calls on the fireGun function.
The fireGun function takes advantage of the frames within the Gun MovieClip. Say we have three frames in the Gun MovieClip. The first is just a picture of the gun. The second is the gun with a flash coming out of the nozzle. And the third is the gun at rest again. The line this.gotoAndPlay(2) sends the gun to the second frame with the flash graphic.
For this to work, each frame in the Gun MovieClip has to have some stop and play commands.
But.. you said no code on our timeline!! Liar!
I know. This is the exception. You will need basic stop() commands and gotoAndPlay commands to loop animations. Any MovieClip that has more than one frame will need something to control it.
So our Gun MovieCLip has the following:
Frame 1: stop();
Frame 2: no actionScript... and I mean nothing, not even the words, "no actionScript"
Frame 3: gotoAndStop(1);
This will loop the gun to the beginning and wait for the next time the user clicks the gun.
Advanced features of the Gun class might include a Bullet.as sub-class that creates a bullet MovieClip to fly across the screen. Sound to play when the shooting takes place. Object collision detection to see if the bullet hits the target. And a means by which a custom event will tell the Game.as class that a zombie has been hit and it should be removed from the stage.
As you go down the rabbit hole of ActionScript 3, you will find yourself at a point where it's just a matter of getting the syntax right for all the built in functions and classes. Arrays, Loaders, casting variable types.. all that stuff will come.
I hope this has been helfpul. It's been on my to-do list for a long time. When I first started out, no one could provide me with basic answers for how all these classes and whatnot worked. After teaching myself AS3 for 2 years and reading a gabillion books, I think I've gotten to a point where I'm pretty comfortable with it all. -
How to build a custom movie clip that will be used as a cell renderer for column in a grid ?
i want to build a datagrid that shows a picture and underneath it a name.
the problem is i dont want to see all of the pictures, but all the pictures that have certain requirements, so i cant just make one movie clip that includes all the pictures and names.
so my question is how do i build a movie clip that contains photo and text?.You do not create movieclips on the timeline using code, though you can create them and add them as children of something that has been manually placed in the timeline.
To create a MovieClip using code you use:
var mc:MovieClip = new MovieClip();
If you need to add an image, then however you intend to acquire the image, after it has been acquired, you add it to the MovieClip using:
mc.addChild(img);
where img is the instance of whatever form of object the image takes (Bitmap, Loader)
If you need to add a TextField to the MovieClip then you use:
var tf:TextField = new TextField();
mc.addChild(tf);
and you can set up properties for the textfield such as the font and color and position as well after it has been instantiated (the first line).
Maybe you are looking for
-
Java Error in RFC Lookup in XSLT Mapping usinf Java helper class
Hi All, I am doing RFC Lookup in XSLT Mapping using Java Helper class. The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups. Both Lookups works when done individually however when I call both lookups in
-
Problem with Exporting/Stacking in Lightroom 5.2
I have used stacks in Lightroom for a long time but I am now having a problem. My typical workflow is to process RAW images in the Develop Module then Export them as JPG files. I choose "export to same folder as original" and I check "add to this cat
-
Is there any other option for using internal table in badi
hi i know we cannot use internal table in badi but is der any other option plz write in d codez too with Regards Rohan Shetty Edited by: Rohan Shetty on May 6, 2008 2:14 PM
-
What download is good for Firefox 33 for silent install for windows os?
In fire Fox 33 download we see there is setup stub .exe , when will setup.exe for firefox 33 be available as we cannot do a silent install for setup stub.exe . we have no issues in doing silent install for setup .exe which we had for previous version
-
Function to validate APEX password entered after login within an app.
Hi Folks. I have a requirement that, one or two functions in my app require a password to be entered. What I'd like to do is provide the user a password field where they enter their APEX password and I can then call a function to validate the passwor