New to AS3

I have created a flash document with 5 frames.
I have created a button called my_button.
I have the following code on the first frame:
import flash.events.MouseEvent;
this.my_button.addEventListener(MouseEvent.CLICK,clickthat);
function clickthat (event:MouseEvent):void {
gotoAndStop(5);
stop();
and the following code on frame 5:
import flash.events.MouseEvent;
this.my_button.addEventListener(MouseEvent.CLICK,clickthis);
function clickthis (event:MouseEvent):void {
gotoAndStop(1);
stop();
When I preview this, the button on frame 1 only works once,
when I click on the button in frame 5, it goes back to frame 1 like
it is supposed to, but clicking on the button in frame one doesn't
work anymore. Am I missing something here? Thanks for your
patience.

that's pretty poor design but if that's the way you
understand flash you can patch your problem by removing the old
listeners that you no longer want to use before you define the new
ones.
p.s. if you needed to use an import statement, one would be
enough. in your situation you need no import statements, at
all.

Similar Messages

  • Having trouble using a simple class..New to AS3

    Hello Everyone,
    I am new to AS3 but not to AS2. I have written a simple class
    and when I import it, I don't see the object that should be created
    upon calling the constructor. Can you guys tell me where am I going
    wrong. And I am very puzzled about 'document class'. Yes, I have
    google numerous threads on "document class" but still very shaky on
    this matter. Here is my simple class which should place a button
    object on the stage when I create a new object of this class.
    Once I have created the BTN class, I have made sure that I
    have button component in my library, I then instantiate the object
    by creating a new CS3 file and importing my class:
    import com.learning.as3.*;
    var b:BTN = new BTN();
    When I test the movie, I get the following errors:
    1172: Definition com.learning.as3 could not be found.
    1046: Type was not found or was not a compile-time constant:
    BTN.
    1180: Call to a possibly undefined method BTN.
    Any help would highly be appreciated.
    Thanks you.

    Hello Ned,
    Yes, I have made sure that my directory structure exist as it
    should be and yet I still get the errors.
    Thanks a lot.

  • New to AS3 - URL Function not working...please help!

    Hi i'm very new to Flash and AS3. I've created a clip and need to link some buttons to some pages on my site but they don't seem to work. Please let me know if nyone can help me...below is my code:
    b_1.addEventListener(MouseEvent.CLICK,b_1ClickHandler);
    function b_1ClickHandler(e:MouseEvent)
                navigateToURL(newURLRequest("http://www.MYURL.com/.html"),"_self");
    Please let me know what i'm doing wrong.
    Thanks in advance!

    If you are editing/testing in the Flash editor, the html end of things is nothing to be concerned about at this stage, and will likely take care of itself when it comes time.
    So you run the file in Flash and do not get any error messages?  Then place a trace command inside the button's event handler function to see if the button is communicating with it....
    function b_1ClickHandler(e:MouseEvent)
        trace("button works");           
         navigateToURL(new URLRequest("http://www.MYURL.com/.html"),"_self");
    Also, I'm just noticing you don't have an actual file named in the url, so in case the "not working" is that you can't get the desired page to show, that may be the cause.  Normally I would suggest testing url links online rather than in Flash because it's iffy to try to get the web involved with the editor at times.

  • New to AS3 need some help

    So I am working on a small school project and I had an idea and I am trying to make that idea come to life but I know next to nothing about action script. (I really want to learn but I don't have time to learn it between now and when the project is due(december 6th)). I am trying to create a simple interface like a video game menu, all it needs to do is have buttons that allows you to navigate back and forth through 4 menu screens by way of buttons. I have created the buttons and have made it so that from the first menu if you click the arrow to the right it jumps to the second menu but when I go to add more AS so that you can go to the next menu over or go to the previous menu, in preview mode, it won't stop at any frame and it looks as though it runs the first bit of animation normally but when it should stop so that you can advance to the next menu yourself, it keeps playing and it runs on a loop between the first frame and the second menu, even though there are stop commands.
    Sorry if I am not explaining this well, I am sure it is a simple fix but again I know nothing about actionscript and have no idea how to make this stop looping.
    I have attached a link to the .fla file if anyone cared to take the time to download it and look at what I am talking about.
    http://www.newgrounds.com/dump/item/b5489396b7cb18424ba55fc16731a600
    Any help would be greatly appreciated.
    (I also think I should mention that animation/actionscript is not required for this assignment or this class (its a graphics class), I just think it would look really cool and therefore want to learn how to make this work)

    Thanks for the quick reply.
    So, just to clarify on what i want the buttons to do: I get that my "fl_ClickToGoToAndPlayAtFrame" function says gotoAndPlay(34), that is what I want it to do but once it gets to that frame and stops at frame 51 I need that same button to then, when clicked, go to and play frame 52, and so on to navigate to the other menus.
    When you say I need to redefine the funtion again for a different action, what do you mean? What you posted after that appears to be the same as what I have been putting into the action box but once I add that it no longer recongizes any of the stop commands and it plays through the entire animation going from menu to menu without pausing, and then loops.

  • HELP! Uploading AS3 Game to server, no sound and Spacebar doesn´t work HELP!

    Hello, relatively new to AS3 and flash, this is the first time i am publishing anything. We are trying to upload our simple flashgame to our webserver, the game works perfectly fine locally save for one thing. We get an error regarding TLF which says it wont stream or something. So when it gets online, no sounds play and spacebar doesn't work, left and right arrow does work. We have three TLF text fields that are used to update score, lives and show you final score. If i turn these into classical text they stop working.
    Things we have tried: Changing default linkage from RLS to Merged into code, changing the text boxes to classical text(they then stop working), made sure the paths are correct(all files are in the same directory including the .swz file)
    This is the code from the soundclass:
    package 
        import flash.net.URLRequest;
        import flash.media.Sound;
        import flash.media.SoundChannel;
        import flash.events.*;
        public class MySound
            private var bgSound:Sound;
            private var fireSound:Sound;
            private var waterSound:Sound;
            private var earthSound:Sound;
            private var lightSound:Sound;
            private var soundChannel:SoundChannel;
            public function MySound()
                soundChannel = new SoundChannel();
                bgSound = new Sound();
                var req:URLRequest = new URLRequest("BackgroundSound.mp3");
                bgSound.load(req);
                //fire
                fireSound = new Sound();
                var req2:URLRequest = new URLRequest("soundFire.mp3");
                fireSound.load(req2);
                // water
                waterSound = new Sound();
                var req3:URLRequest = new URLRequest("soundWater.mp3");
                waterSound.load(req3);
                // earth
                earthSound = new Sound();
                var req4:URLRequest = new URLRequest("soundEarth.mp3");
                earthSound.load(req4);
                // light
                lightSound = new Sound();
                var req5:URLRequest = new URLRequest("soundLight.mp3");
                lightSound.load(req5);
            public function playBgSound()
                soundChannel = bgSound.play(0, 999999);
            public function stopBgSound()
                soundChannel.stop();
            public function playFireSound()
                fireSound.play();
            public function playWaterSound()
                waterSound.play();
            public function playEarthSound()
                earthSound.play();
            public function playLightSound()
                lightSound.play();
    I can somewhat get that sound can bugg out, but why does spacebar stop functioning? ANy help is greatly appreciated as this has to be delivered in twelve hours(published online) for a school assignment.

    Also might add publishing it locally in my own browser everything works, as does ofcourse playing it in flash itself. Changing from RLS to merged into code stops the error from coming, but doesn´t fix the problem on the server.
    Code from main class related to sound and spacebar:
    import flash.display.*;
        import flash.events.*;
        import flash.ui.Keyboard;
        import flash.text.TextField;
        import flash.media.Sound;
        import flash.net.URLRequest;
        import flash.events.MouseEvent;
        import flash.utils.Timer;
        import flash.events.TimerEvent;
        public class main extends MovieClip
            private var fireTimer:Timer; //delay between shots
            private var canFire:Boolean = true;
            private var mySound:MySound;
            private var bulletSpeed:Number = -450;
              public function main()
                //load sounds
                mySound = new MySound();
            private function playGame(event:MouseEvent)
                gotoAndStop(2);
                // initialize
                myLives = 5;
                myHitsNo = 0;
                weaponType = 1;
                mybullets = new Array();
                enemys = new Array();       
                myScoreTxt.text = "Score: " + myHitsNo;
                myLivesTxt.text = "Lives: " + myLives;   
                fireTimer = new Timer(400, 1);
                fireTimer.addEventListener(TimerEvent.TIMER, shootTimerHandler, false, 0, true);
                stage.addEventListener(KeyboardEvent.KEY_DOWN, listenKeyDown);
                stage.addEventListener(Event.ENTER_FRAME, addEnemy);
                stage.addEventListener(Event.ENTER_FRAME, checkCollision);   
                player = new thePlayer(stage.stageWidth-40, spawnPoint2);// stage.stageHeight/2);
                stage.focus = player;
                addChild(player);
                mySound.playBgSound();
    public function listenKeyDown(event:KeyboardEvent)  // Controls and weapontype selector
                if (event.keyCode == 37) //left
                    player.movethePlayerDown();
                if (event.keyCode == 39) //right
                    player.movethePlayerUp();
    if (event.keyCode == Keyboard.SPACE) //space
                    shootBullet();
                    //soundFX.attachSound("Pistol Fire.wav");
                    //soundFX.start();

  • What is wrong with as3

    this is not a question about 'how i do X'. is rather a 'discussion' (flame or whatever, but to defend or argue about aspects, not people) about 'what is wrong with as3' and what aspects whould be taken into consideration for updates. right now i am using as3, and since i paid for this license, i choose this tool over some alternatives and i am using it to do stuff for other people who pay me to do it, i think it can be helpful for all of us if some actions are started in the right direction. i have already posted about 'all people in adobe are dumbasses that do not know how to make a scripting tool and are messing up my work', but i was pissed at the time (i still am pissed) but i believe this is not the right aproach. instead, if this goes to the right people in adobe, we all may get something in the future, like better and easier todo apps and web presentations.
    pre: not only about the as3 specification, but COMPLY with the specification that you set. for example, some time ago there were problems with matrix transforms. this was corrected later with a patch. but this means it is not even doing what is is supposed to do
    1. scriptable masks and movement, sprites and child sprites: there is a sprite with a mask, the mask is a shape drawn via script, something like
    somemask=new shape();
    somemask.graphics.beginfill();
    (...etc)
    somesprite.mask=somemask;
    just like that. now add some child sprites to 'somesprite', and make 'somesprite' move, scale and rotate. there you will have something like a kaleidoscope, but not what you expected to do with your script. as the child sprites move in the parent mask, you will see that the child sprites appear or dissapear kind of randomly, and if the child sprites are textfields, it may be that the text is rendered outside the mask, or partially rendered outside the mask (as in only part of the text), rendered with the wrongf rotation or in the wrong place. some child sprites are clipped correctly, some dissapear totally when only a part should dissapear (clipped) etc.
    way around: have not tried it yet, but i have the impression that bitmaps have different criteria for clipping, so i am thinking of trying this: appli an empty filter (a filter with params so it does not have any effect on the sprite or in the textfield) so the sprite is rendered as bitmap before doing anything else with it. as i said, i have not done it yet, but it may be a way around this problem, to avoid all this inconsistency with clipping
    1-b. inconsistency between hierarchy and coordinates, specially masks: you apply a mask to a sprite, yet the sprite has a set of coordinates (so 'x' in the sprite means an x relative to its container), yet the mask applied to the very same sprite, as another reference as reference for coordinates (like the stage)
    2. painting via script: in any other languaje, in any other situation, something like:
    beginFill(params);
    (...stuff 1)
    endFill();
    beginFill(params);
    (...stuff 2)
    endFill();
    (...etc)
    means: render region of block 1, then render region of block 2 etc, and no matter what, it should be consistent, since there is noplace for ambiguity. if you read it, you may think what that means, even if you dont run it you may have an idea of the picture you want to draw, but not with as3. as3 somehow manages to screw something that simple, and mixes all the blocks, and somehow uses the boundaries of one block as boundaries for other block. is like all blocks are dumped into whatever, and then uses all lines defined into it as boundaries for a unique block. it changes all boundaries and generates inconsistency between what is shown and redraw regions of the resulting picture, like lines that go to the end of the screen and then dont go away in the next frames, even tough the beginfill endfill block should prevent it
    3. event flow: i dont know what was the policy behind as3 event flow design. it is in no way similar or an extension to previous event flow, neither with any event flow in any other plattform. i dont know how most people start with as3; in my case, i unpacked, installed and when i tried to do something with what i already knew i could not, so i started reading the as3 docs, and since is like 800 pages long, i just read the basics and the rest i would 'wing it'. in the part of the event flow, there was something about bubbling and stuff, it was not clear at all and when i tried to do what is was said in the documentation (like preventing events to 'bubble', as is called in the documentation), i could not see any effect but i could see it was a mess. flash is not the only thing out there to work with pictures or to work with mouse events, but is the only one that deals with things like 'target' and 'currentTarget'. my first experience on needing this was when i was dealing with my own event handlers (so the only thing that had control over mouse was the stage, and i would admin everything via script). there were events generated everywhere, the stage got events that were not genrated directly over the stage, but got there not with stage coordinates but the coordinates relative to the sprite that generated the event. so if i hover the mopuse over the stage, and the stage has some things on it how does it work? i get multiple event calls, like it was hovering multiple times over the stage in a single frame, but in each call with different coordinates? and what if i set all child sprites as mouseenabled=false or compare like 'if (event.target != event.currenttarget)', what if i move the mouse over a child, does it prevent the move mouse event at all? or does it filter only the event call with only stage coordinates? in my case, every time i move over another clip (with mouseenabled = true), the stage gets it as 'mouse up', even tough there was never a mouse release, what the hell? do even the people at adobe know how to handle events with their own tool when they require it? why does an event 'bubble' when i have not specifically tell it to do it? mi thought is that this event flow was very poorly conceived, and tough the intention may have been that there were different cases and it shopuld cover all cases, they actually introduced new problems that were not present in traditional ways to handle it, and it is neither the easier way to handle things, and this way, a very simple problem turns into a very ugly thing because it must handle things that were not neccesary to handle, or were implicit in other situations.
    4. legacy: since as3, all interaction is different, and if you want to do things in the new plattform, using the new features, what you already knew just goes to the garbage can. when a new tool arrives, it should be an extension to previous tools (which is a reason to update instead of just buying a new tool from a different vendor). if everything i had or knew just means nothing from now on, then i can not say 'i know flash script', and my previous knowledge gives me no advantage when aproaching the new version. as3 is a new aproach that requires doc reading and stuff, even if you knew something about previous as specifications or other oo languajes. if you decide to change things from now on, like the things mentioned in this post, instead of just throwing away everything the users alerady knew about the tool, do like in java releases, they mark some things as 'deprecated', they keep working as they should, give a warning, but also a message saying this feature is deprecated, we suggest you use this library instead.
    5. lack of previous functionality: if you 'update' something, it meand all previos functionality is still there (probably improved, but not with bugs if it was working fine), plus something else. now it seems backwards, there are some things that could be done in previous versions but not in this one, like 'duplicatemovieclip'
    6. inconsistency with scripting/programming paradigms: (ok, fancy work, but fits perfectly here): as3 proposed ways to handle things, but the people who designed it got 'too creative', and they did something that is not consistent neither with previous versions of as or with other languajes. the documentations is full of things like 'it looks like x languaje or languaje family, but instead of using XXX word, you must use YYY'. great, what is this? namespaces 'work like', but 'differently' for example from java, .net, .c. its got the idea that a namespace means a grouped functionality but there are rules about where should be placed the file (ok, java has this also, .net takes care of it automatically if all files are registered in the project), but what you got is a mess that 'if you know other languajes you got the general idea, but nonetheless, even if you knew this or previosu versions of as, you still have to read whatever we decided arbitrarily just to be different'. namespaces, event handling, vars definition which is not like previous scripting neither like fully typed languajes.. is just a mess.
    7. lack of scripting and graphics integration: unlike flash and adobe tools that just got on the graphics side leaving all the scripting integratuion apart, most tools from other vendors integrate very well interacton with what is on the screen. the script editor: very poor. autocompletion? a drop down list that does not heklp at all, appears in the wrong places, and when you need it to go, it does not go (so if i want to move away from the uncalled drop down list, i have to click somewhere else, making developement slowewr instead of helping, so the drop down list does not capture all events when i dont want to). in other ides you double click somewhere and it will go to the part of code relevant to that event or whatever. for example microsoft tools, ok i am antimicrosoft, and one of the reasons was that when windows 95 got to market proposing itself as the ONLY pc os you could use if you wanted to keep useing the apps you already had, it was a lousy product full of flaws but you had to keep using it because you had no choice. what is so different from what is happening with flash just now? yet the ide of c# is awesome, works very well and seems reliable.
    adobe people: not all user are designers that just make pretty pictures. if it is not intended for scripting then why is it there. and if there are corrections to be done, they should patch all versions, not only the last one. previous version users also paid for their versions.

    Well, there is no point in arguing.
    I personally believe AS3 does exactly what it promises to do within limits (read: reasonable limits) of ECMA type of language. And sometimes it doesn’t do what we expect it to for it cannot possibly emulate everyone’s thinking process. The task, I guess, is to learn to think in terms of AS3 – not to try to make AS3 think like us. No language covers all the grounds. And no, it is not Java - with no negative or positive connotation. It is what it is. Period. I just hope that AS5 will be more Java like.
    You are right about the fact that it is not necessary to know all the aspects of language in order to perform the majority of tasks. But it is paramount to have a clear idea about such fundamental concepts as display list model and events. For instance, depth swap has no meaning in terms of AS3 because display list object stacking is controlled automatically and there is no need for all these jumping through hoops one has to perform in order to control depth in AS2. There no more gaps in depths and one always know where to find things.
    Similarly, there is no point in having duplicateMovieClip method. More conventional OOP ways of object instantiation accomplishes just that and much more. Just because OOP object instantiation needs to be learned doesn’t mean past hacks have place in modern times. duplicateMovieClip is a horse carriage standing next to SUV. What one should choose to travel?
    Events are implemented to the tee in the context of ECMA specifications. I consider Events model as very solid, it works great (exactly as expected) and never failed me. True, it takes time to get used to it. But what doesn’t?
    By the way, speaking about events, contrary to believe in Adobe’s inconsideration to their following. Events are implemented with weakly reference set to false although it would be better to have it set to true. I think this is because there are smart and considerate people out there who knew how difficult it would be for programming novices to deal with lost listeners.
    I think AS3 is million times better than AS2. And one of the reasons it came out this way is that Adobe made a very brave and wise decision to break totally loose from AS2’s inherent crap. They have created a totally new and very solid language. If they had tried to make it backward compatible – it would be a huge screw up, similar to how our friends at Microsoft are prostituting VB and VBA – extremely irritating approach IMHO.
    Also, Flash legacy issues shouldn’t be overlooked. Flash did not start as a platform for programmers. Entire timeline concept in many ways is not compatible with the best OOP practices and advancements. I think for anyone who is used to writing classes the very fact of coding on timeline sounds awkward. It feels like a hack (and AS2 IS a pile of hacks) – the same things can be nicely packaged into classes and scale indefinitely. As such I wouldn’t expect Adobe to waste time on hacking timeline concept issues by making smarter editor. They have made a new one – FlexBuilder – instead. Serious programmers realize very soon that Flash IDE is not for developing industrial strength applications anyway. So, why bother with channeling great minds into polishing path to the dead end?
    I would like to state that all this is coming form a person who knew Flash when there was no AS at all. And I applaud every new generation of this wonderful tool.
    I believe Adobe does a great job making transition from timeline paradigm to total OOP venue as smooth as possible. And no, they don’t leave their devoted followers behind contrary to many claims. They are working on making developing Flash applications as easy as possible for people of all walks. Welcome Catalyst!
    Of course there is not enough information about AS3 capabilities and features. But, on the other hand, I don’t know any area of human kind activities that does.

  • Advance image gallery in as3.0

    hey folks i am just new to as3.0, any one mind telling me how to create a gallery like this site www.yodabaz.com

    Then you may need to hire someone to do it for you if you do not have the skills to do it yourself and cannot look for a tutorial to teach you.

  • AS2 to AS3 conversion... external array files

    I'm at the tail end of writing an app in ActionScript2 for a
    client and was just told that it needs to be rewritten in
    ActionScript3. ((8-0
    I'm pretty good at AS2, very new to AS3. So here's a question
    (the first of many, I'm afraid): I currently have a series of
    external data files... really just .as files each of which
    instantiates and populates an array... that I've been bringing in
    at compile time using
    #include. The question is, what do I need to do to get those
    same files into an AS3 version... do they need to be set up as
    packages? Do I leave them as they are, stick 'em in the folder and
    they'll show up?
    Any guidance would be deeply appreciated.

    move the instantiation to a class...perhaps your document
    class if you are writing in Flash (as opposed to
    FlexBuilder).

  • Help with AS3, loading multiple files into a movieclip in specific order in scrollbar

    Hello! I am in need of some advice. We are trying to build a site with these features:
    Our site will be built in Actionscript 3.
    1. A navigation menu that, when a button is clicked, will scroll the site quickly to a specific Y position using swfaddress.
    2. The entire site is controlled by a flash scroll bar, which will be scrolling a single movieclip.
        2A. The movieclip will load content corresponding to the navigation categories, all which is organized into zipped files (using this to extract the contents of each section, example: about.zip for the about         section of the site)
        2B. The movieclip will load multiple zipped files one by one that correspond to the navigation, in order, making the site appear to be very tall.
    **What we are in need of is understanding how to load multiple zipped files into a movie clip, in a specific order, and having them scroll between one another through the navigation. The separate navigation categories can be in movieclips instead of zipped files if that is easier.
    Here is a reference of something that works like this: http://swfc-shanghai.com/#/about/

    Hello kglad! I have set aside the idea of using zipped files, and am now just using multiple external swfs that I'd like to load into the movieclip in a specific order. Any thoughts?
    I'm new to AS3, and I'm  attempting to create a scrolling movieclip that will load multiple  external files, in order, into that movieclip. I'm using XML as well. At  this point, nothing is loading into my movieclip (contentMain) and it's  a bit frustrating! Thank you for your help!
    Current error: 1180: Call to a possibly undefined method load.
    AS3:
    //XML Loader
    var myXML:XML = new XML();
    myXML.ignoreWhite = true;
    myXML.load ("master.xml");
    myXML.onLoad =function(sucess) {
       if (sucess) {
    contentMain.loadAll();{
         load("1_Overview.swf")
         load("2_Webcam.swf")
         load("3_Twounion.swf")
         load("4_Oneunion.swf")
         load("5_Retail.swf")
         load("6_Nearby.swf")
         load("7_Courtyard.swf")
         load("8_Map.swf")
         load("9_Conference.swf")
         load("10_News.swf")
         load("11_Sustainability.swf")
         load("12_Contact.swf")
    addEventListener("complete",onLoad)
    onLoad();{
    //load all
         }else {
             trace("ERROR LOADING XML");

  • Flash CS6; AS3: How to load image from a link on one frame and addChild(image) on other?

    How can I addChild outside the frame of images loader function? When I try to addChild on the other frame of the same loader, I get an error.
    I need to download all my 10 images only ONE TIME and place it on the screen in the other frames (to the same movie Clip).
    Also I can only play this as3 coded frame once. I know how to add an array of images, but I only need to understand how to do it with one image.
    Here is my loader for one image..
       var shirt1 = String("https://static.topsport.lt/sites/all/themes/topsport2/files/images/marskineliai_png/215.pn g");
       var img1Request:URLRequest = new URLRequest(shirt1);
       var img1Loader:Loader = new Loader();
       img1Loader.load(img1Request);
       myMovieClip.removeChildAt(0);
       myMovieClip.addChild(img1Loader);

    Symbol 'Spinner', Layer 'AS', Frame 2, Line 1
    1120: Access of undefined property img1Loader.
    [FRAME1]
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.*;
    import flash.net.URLRequestHeader;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;
    import flash.events.SecurityErrorEvent;
    function init(e:Event = null):void
        removeEventListener(Event.ADDED_TO_STAGE, init);
        var loader:URLLoader = new URLLoader();
        var request:URLRequest = new URLRequest("http://www.topsport.lt/front/Odds/affiliate/delfi");
      var acceptHeader:URLRequestHeader = new URLRequestHeader("Accept", "application/json");
      request.requestHeaders.push(acceptHeader);
      request.method = URLRequestMethod.POST;
        //request.url = _jsonPath;
        loader.addEventListener(Event.COMPLETE, onLoaderComplete);
      //loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        loader.load(request);
      try {
                    loader.load(request);
                } catch (error:Error) {
                    trace("Unable to load requested document.");
    init();
    function onLoaderComplete(e:Event):void
        var loader:URLLoader = URLLoader(e.target);
        var jsonObject:Object = JSON.parse(loader.data);
      var marsk1 = String("https://static.topsport.lt/sites/all/themes/topsport2/files/images/marskineliai_png/215.pn g");
      var img1Request:URLRequest = new URLRequest(marsk1);
      var img1Loader:Loader = new Loader();
      img1Loader.load(img1Request);
      _2.removeChildAt(0);
      if(_2 != null)
      _2.smoothing = true;
      //    the addChild which works when on frame one
      //_2.addChild(img1Loader);
    [FRAME2]
      _2.addChild(img1Loader);
    p.s. I removed the unnecessary code like other movieClips. It works then addChild function is on frame one.
    I'm kind of new to as3. I started using it this month so sorry if it's the obvious mistake.
    How to make flash recognize the loader?

  • Basic class understanding - trying to understand AS3

    I'm relatively new to AS3 and AS in general so forgive me...
    Is my understanding that there are no Abstract classes and
    you can't override or overload constructors of derived classes
    correct? Abstract classes aren't important for me but if it's
    possible I'd like to know how. But is there a way to overload
    default constructors and I'm just doing something wrong? Can we
    only override methods or can we overload them also. Work arounds
    would also be appreciated.
    Here's what I'm doing currently to make things work.
    -For a simple game I'm making, I'm not using FlexBuilder and
    don't want to for this project for specific reasons, so I'm using
    Flash and instead of using sprites and bitmaps I want to draw
    shapes in Flash and covert them into MovieClip symbols which I
    "link" for export as AS to use in my code. I want to make it a
    little modular so I can just change certain aspects of the code for
    different approaches.
    If I create a class Actor which extends MovieClip the default
    constructor has to be Actor() with no arguments. But I'd like my
    class to be able to have arguments like initial x and y
    coordinates. I know you can just create methods to initialize each
    part but I'd like to try and have a default constructor to do so.
    In Flash I notice that if you derive a written class or built
    in class it requires the standard default constructor, "which I may
    be wrong about and I hope I am and someone could show me what I'm
    doing wrong", I found if you derive a class based on a symbol you
    linked for export as AS I can create a new constructor with
    whatever argument(s) I want (so this is why I'm making this post,
    if I can do this couldn't there be a way to override
    constructors?).
    Here's how I'm doing it currently...
    1) So I create a base class called Actor which extends
    MovieClip save it as Actor.as and default constructor of Actor()
    add whatever properties I want.
    2) Then I create an object in my library, let's call it
    mcShip, then I link that symbol for export as ActionScript and have
    it's base class as Actor and name the class ShipMC.
    3) I then create a new .as file and call this one
    ShipActor.as, this class ShipActor extends ShipMC and then I create
    a default constructor ShipActor(gs:GameScreen, xA:Number,
    yA:Number) and this works fine
    (also I create a method in Actor class called ActorSuper and
    call it from ShipActor with passed in arguments, since I don't know
    of a way to overload the parent class' constructor)
    If I were to just have my mcShip with a base class of
    flash.display.MovieClip and I try to create ShipActor with the
    constructor above it says missing default constructor. The above 3
    steps is the only way I can get it to work for now. Is there a way
    to overload the constructor? If not are there any other work
    arounds?
    I'm only looking at this for object oriented approach more
    than anything. Sorry for the lengthy post but I didn't want any
    confusion, or any more confusion -.-
    Thanks for taking the time to read this post
    -John

    Your correct in that you cannot define abstract classes in
    ECMA based actionscript nor does Actionscript allow you to overload
    at all. There are work arounds for both though such as just have
    your overloaded methods use a single Object as its argument and
    that Object contain the different parameters.
    I find developing in the Flash IDE difficult at best so if
    you'd like another option besides flex builder you can use eclipse
    webtool kit with FDT. Its only got 30 days free but its worth it to
    buy it ( trust me ). A tip though is to install the latest flex sdk
    and change the source library to it so you can use Ant to build
    your swf's.
    For an object called Actor I would just extends the Sprite
    package instead of MovieClip unless you're going to manipulate its
    timeline ( why would you though ). If you need an tweening package
    check out GreenSock's TweenLite. Its better then flash's default
    one.

  • Parenting and child control with AS3

    Hi,
    I'm new to AS3 and although I can see some good practice and functionality I'm constantly getting stucked and can't yet make things that I would do so easily with AS2 - I almost need to relearn it from scratch!. Still I would appreciate some help and guidance on this...
    I made a class that creates a "kind" of menu with data from a XML file and basically what it does when it is called is create a emptyMC (a container), add a childMC (a square) and add another child (a text label). When I create the container I'm trying to add a MouseEvent that can act on each the container instances but all I can get is a MouseEvent on object containing all the added MCs. The code follows.
    Can anyone enlight me with this issue or explain what am I doing wrong.
    I can't understand well the dynamic parenting with AS3 and the lack of using instance names and dot parenting doesn't help.
    Thanks in advance.
    Note to Adobe: Previous versions of Flash Help Files and AS reference were by far more helpful than in CS4!
    In the timeline:
    import assets.myDynMenu;
    var theMenu:myDynMenu = new myDynMenu("menu.xml");
    stage.addChild(theMenu)
    stop();
    In the class:
    package assets
         import flash.display.*;
         import flash.events.Event;
         import flash.events.MouseEvent;
         import flash.text.TextField;
         import flash.net.*;
         public class myDynMenu extends Sprite {
              // INIT EXTERNAL DATA LOAD
              public function myDynMenu(theData) {
                   // LOADS THE MENU DATA FROM PREFORMATTED XML
                   var loader:URLLoader = new URLLoader();
                   var url:URLRequest = new URLRequest(theData);
                   loader.addEventListener(Event.COMPLETE, buildTheMenu);
                   loader.load(url);
              // XML MENU DATA LOAD CHECK - ON COMPLETE BUILD OBJECT AND CHILDREN
              public function buildTheMenu(event:Event):void {
                   var xml:XML = new XML(event.target.data);
                   for (var i=0; i<xml.menuData.menuItem.length(); i++) {
                        // ADDS A CONTAINER
                        var itemContainer:MovieClip = new MovieClip();
                        itemContainer.name = "menu" + i;
                        // THE NEXT LINE DOESN'T ACT AS I WISHED?!
                        // IN THE FUNCTION CALLED I NEED TO CONTROL THIS ITEM AND ITS CHILDREN
                        itemContainer.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
                        itemContainer.x = 100 * i;
                        itemContainer.y = 0;
                        itemContainer.mouseEnabled = true;
                        itemContainer.mouseChildren = false;
                        addChild(itemContainer);
                        // ADDS A CHILD TO CONTAINER (a square)
                        var itemBase:MovieClip = new MovieClip();
                        itemBase.graphics.beginFill(xml.menuData.mConfig.mainItemColor);
                        itemBase.graphics.drawRect(0,0,xml.menuData.mConfig.mainItemW,xml.menuData.mConfig.mainIt emH);
                        itemBase.graphics.endFill();
                        itemBase.name = "base" + i;
                        itemBase.mouseEnabled = false;
                        itemBase.mouseChildren = false;
                        itemContainer.addChild(itemBase);
                        // ADDS ANOTHER CHILD TO CONTAINER (a text label)
                        var theLabel:TextField = new TextField();
                        theLabel.x = 5;
                        theLabel.y = 5;
                        theLabel.selectable = false;
                        theLabel.mouseEnabled = false;
                        theLabel.border = true;
                        theLabel.text = xml.menuData.menuItem[i].mName;
                        itemContainer.addChild(theLabel);
              // THIS IS THE MOUSE OVER THAT I NEED TO ACT ON EACH itemContainer (AND CHILDREN)
              private function onMouseOver(event:MouseEvent):void {
                   event.stopPropagation();
                   trace("You are over " + this.name );

    use:
    package assets
         import flash.display.*;
         import flash.events.Event;
         import flash.events.MouseEvent;
         import flash.text.TextField;
         import flash.net.*;
         public class myDynMenu extends Sprite {
              // INIT EXTERNAL DATA LOAD
              public function myDynMenu(theData) {
                   // LOADS THE MENU DATA FROM PREFORMATTED XML
                   var loader:URLLoader = new URLLoader();
                   var url:URLRequest = new URLRequest(theData);
                   loader.addEventListener(Event.COMPLETE, buildTheMenu);
                   loader.load(url);
              // XML MENU DATA LOAD CHECK - ON COMPLETE BUILD OBJECT AND CHILDREN
              public function buildTheMenu(event:Event):void {
                   var xml:XML = new XML(event.target.data);
                   for (var i=0; i<xml.menuData.menuItem.length(); i++) {
                        // ADDS A CONTAINER
                        var itemContainer:MovieClip = new MovieClip();
                        itemContainer.name = "menu" + i;
                        // THE NEXT LINE DOESN'T ACT AS I WISHED?!
                        // IN THE FUNCTION CALLED I NEED TO CONTROL THIS ITEM AND ITS CHILDREN
                        itemContainer.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
                        itemContainer.x = 100 * i;
                        itemContainer.y = 0;
                        itemContainer.mouseEnabled = true;
                        itemContainer.mouseChildren = false;
                        addChild(itemContainer);
                        // ADDS A CHILD TO CONTAINER (a square)
                        var itemBase:MovieClip = new MovieClip();
                        itemBase.graphics.beginFill(xml.menuData.mConfig.mainItemColor);
                        itemBase.graphics.drawRect(0,0,xml.menuData.mConfig.mainItemW,xml.menuData.mCon fig.mainItemH);
                        itemBase.graphics.endFill();
                        itemBase.name = "base" + i;
                        itemBase.mouseEnabled = false;
                        itemBase.mouseChildren = false;
                        itemContainer.addChild(itemBase);
                        // ADDS ANOTHER CHILD TO CONTAINER (a text label)
                        var theLabel:TextField = new TextField();
                        theLabel.x = 5;
                        theLabel.y = 5;
                        theLabel.selectable = false;
                        theLabel.mouseEnabled = false;
                        theLabel.border = true;
                        theLabel.text = xml.menuData.menuItem[i].mName;
                        itemContainer.addChild(theLabel);
              // THIS IS THE MOUSE OVER THAT I NEED TO ACT ON EACH itemContainer (AND CHILDREN)
              private function onMouseOver(event:MouseEvent):void {
                   event.stopPropagation();
                   trace("You are over " + event.currentTarget.name );

  • My AS3 buttons only work the first time

    I have set up my buttons so that are each a movieclip with 'over' and 'out' states/frame labels. They exist on the main timeline. The actionscript controlling them is situated in a frame on the main timeline and the frame holding that actionscript is on the same point within the main timeline where the buttons are introduced. I am using actionscript 3.
    The buttons have been set up so that they navigate to another frame on the same main timeline and on that frame is a movie. The movie dimensions are smaller than the main stage so the buttons are still accessible when each movie is played.
    The problem is my buttons are only working once - by that I mean they go to the correct place when clicked the first time, but when they are clicked again they navigate elsewhere.
    Totally doing my head in trying find a solution and if anyone can help and show me what I'm doing wrong that would be really really helpful. Here's the code I used for the buttons...
    stop();
    function mainBtnOver(event:MouseEvent):void {
    event.target.gotoAndPlay("over");
    function mainBtnOut(event:MouseEvent):void {
    event.target.gotoAndPlay("out");
    ///////// INDIVIDUAL BUTTON CLICK FUNCTIONS
    function mainBtn1Down(event:MouseEvent):void {
    gotoAndPlay("01Movie");
    function mainBtn2Down(event:MouseEvent):void {
    gotoAndPlay("02Movie");
    function mainBtn3Down(event:MouseEvent):void {
    gotoAndPlay("03Movie");
    function mainBtn4Down(event:MouseEvent):void {
    gotoAndPlay("04Movie");
    function mainBtn5Down(event:MouseEvent):void {
    gotoAndPlay("05Movie");
    ////////// Button 1 Listeners
    mainBtn1.addEventListener(MouseEvent.ROLL_OVER, mainBtnOver);
    mainBtn1.addEventListener(MouseEvent.ROLL_OUT, mainBtnOut);
    mainBtn1.addEventListener(MouseEvent.CLICK, mainBtn1Down);
    ////////// Button 2 Listeners
    mainBtn2.addEventListener(MouseEvent.ROLL_OVER, mainBtnOver);
    mainBtn2.addEventListener(MouseEvent.ROLL_OUT, mainBtnOut);
    mainBtn2.addEventListener(MouseEvent.CLICK, mainBtn2Down);
    ////////// Button 3 Listeners
    mainBtn3.addEventListener(MouseEvent.ROLL_OVER, mainBtnOver);
    mainBtn3.addEventListener(MouseEvent.ROLL_OUT, mainBtnOut);
    mainBtn3.addEventListener(MouseEvent.CLICK, mainBtn3Down);
    ////////// Button 4 Listeners
    mainBtn4.addEventListener(MouseEvent.ROLL_OVER, mainBtnOver);
    mainBtn4.addEventListener(MouseEvent.ROLL_OUT, mainBtnOut);
    mainBtn4.addEventListener(MouseEvent.CLICK, mainBtn4Down);
    ////////// Button 5 Listeners
    mainBtn5.addEventListener(MouseEvent.ROLL_OVER, mainBtnOver);
    mainBtn5.addEventListener(MouseEvent.ROLL_OUT, mainBtnOut);
    mainBtn5.addEventListener(MouseEvent.CLICK, mainBtn5Down);
    I'm sure it's me doing something very stupid - I'm very new to AS3. Any help much appreciated.
    Thanks :-)

    If the frame labels you are going to have movie clips that have your presentation content, you should use gotoAndStop("frameLabel") instead of gotoAndPlay("frameLabel"). There's no need to play the main timeline when you go to and show any of these movie clips. I'm not sure if this is your issue, though... Using your code, I had no problems.
    Also, you can set up your animated buttons in a way that eliminates the need to have your ROLL_OVER and ROLL_OUT events. This isn't necessarily better, but just another method. Although I might use other ways to animate a button, I do like to reduce the code it takes to use the buttons in an interface, and only use CLICK in most cases.

  • Some strange problem with Flash/As3

    Hi,
    I am having some strange problem with my flash cs3.
    Whatever script I write in as3  doesn't work, even a stop() function doesn't work . But when I change my publish setting to as2 it works fine.
    Not sure about the root cause, may be some setting or preference or my cs3 is corrupted.
    Can anybody please advise.
    Thanks,
    Kishor

    try this
    create a new fla as3,
    select frame 1
    open the actions panel
    paste in the following code
    var squares:Array = new Array;
    setup();
    function setup():void {
        for (var i = 0; i < 25; i++) {
            var square:Sprite = new Sprite();
            //square.name = "square" + i;
            square.graphics.beginFill(Math.random() * 0xffffff);
            squares.push(square);
            squares[i].graphics.drawRect(0, 0, 100, 100);
            squares[i].x = i*3;
            squares[i].y = i*3;
            squares[i].filters = [];
            square.graphics.endFill();
            stage.addChild(squares[i]);
    for (var j = 0; j < squares.length; j++) {
        squares[j].addEventListener(MouseEvent.MOUSE_DOWN, dragMovie);
        squares[j].addEventListener(MouseEvent.MOUSE_UP, dropMovie);
        squares[j].buttonMode = true;
    function dragMovie(event:MouseEvent):void {
        event.target.startDrag();
    function dropMovie(event:MouseEvent):void {
        event.target.stopDrag();

  • Help with AS3 drop down menu

    I'm new to AS3, this script is from an xml drop down menu. I
    need to change all the font to " Gil Sans Lite: I looked down the
    string and only see a place to change fonts twice which I did. But
    the original font remains in the 1st button, the drop downs were
    changed. I also needed to align the buttona as my stage is bigger
    looking for the x/y elements but I was so tired I must have missed
    them. The seperate xml script only lets you change the text, amount
    of menus and urls. Any help?

    Thanks for the info, as I said I'm new to AS3 so I would need
    to know exactly where in the script I would insert this
    (Also the font is on my mac so it would be the font folder/,
    font name "Gil Sans Lite" ='NavItemFont'
    package {
    import flash.display.Sprite;
    public class NavItemFont extends Sprite {
    [Embed(source='C:/WINDOWS/Fonts/FRAMDCN.TTF',
    fontName='NavItemFont', whats the unicode range?
    unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+006 1-U+007A,U+007B-U+007E')]
    public static var NavItemFont:Class;
    and second it says" Render this out - so it is now
    NavItemFont.swf" does that mean change the original fla name and
    export it as NavItemFont.swf"?
    Also " Then in another flash app - load the external swf as
    an asset, and on-load register the font - which will make it
    global. You can now change NavItemFont.swf externally and it will
    change in your app everywhere. Can you explain?
    thx

Maybe you are looking for

  • Posting period for idoc mbgmcr goods movement

    Hi i am trying to run idoc mbgmcr as a standard inbound function module in we19 i use posting date 20070415 - i get posting period 004 2007 is not open so i try using posting date 20070515 - i get posting only possible in 2007/04 and 2007/03 so i go

  • How to ftp:// IP addr /F:\

    Hello, I want to access a partition on a ftp server. The syntax ftp://<IP>/F:\ works in windows/TotalCommander, but not in OSX "Connect to server" nor CyberDuck.app. Maybe some other  syntax? It is not an user/password problem. Thanks hor any hint. D

  • Mail has blue boxes with question marks

    I have a new MacBook Pro. In mail when I receive anything with images, I just see blue boxes with question marks. Yes, i have tried reloading Mail, I have tried clicking on and off from Display remote Images, I have checked all my preferences and it

  • Unable to switch on mbp

    WWhy I can't start up my MacBook pro, cant detect the power cord as well, no light indicated it's plugged in. Does anyone has same issue before and fixed it. It happened while i plugged in my iphone usb, mbp just gone off like that.

  • HT1414 Things that i downloading the first time it not working now why is that

    Things that i downloading the first time it not working now why is that