attachMovie in the extended MovieClip class

Hi all

In collaboration with a class that extends MovieClip. I want to dynamically clips nested within the parent element children. I'm doing something like this [see below]:

Problem is that it attracts only things clip last children's movie (this ["clip" + i]).

When I followed it in the debugger, it * is * tie (and shoot) each clip in the sequence and add it to the tree movie clip on in the debugger with a unique 'child' + identifier i. However, as soon as attachMovie() is called in the next iteration of the loop of the addChildren method he trashes the previous clip, as in, is it is no longer attached to the parent. So the end result is that I have only a single child clip attached, IE one that is drawn. Each new attachMovie replaces the attached movieclip previously.

Am I misunderstood how to create video clips inside a child extended MovieClip object? I thought that when you call attachMovie() within an extended movieclip class he created another child for this clip, so that you have several video clips all nested inside a great one. Any ideas?

Difficulty:

Tags: Adobe Animate

Similar Questions

  • Legacy of lift and the library MovieClip class

    I encountered this problem several times and never found a solution. might as well try it now. I'll explain the problem with a simplified example.

    I have three different clips in my library used as pop-up dialog boxes. They each share main features but have some different controls. For this reason, it makes sense to use the extension of the class. However, try to have the reference to a control base class in all classes of three children causes an error.

    Say that we

    Dialog is a base class that extends MovieClip , but is not directly related to what anyone in the library

    MovieClip NotificationDialogMC is bound to the NotificationDialog class

    NotificationDialog extends the dialog class

    MovieClip SaveDialogMC is bound to the class SaveDialog

    SaveDialog extends the dialog class

    MovieClip OpenDialogMC is bound to the class OpenDialog

    OpenDialog extends the dialog class

    NotificationDialogMC, SaveDialogMC, and OpenDialogMC all contain a TextField named "textLabel" which is supposed to behave in the same way. Normally if you bind a library MovieClip to a class, you can refer to the children inside the MovieClip directly by their name of the instance. So I try to create a function in the class basis as follows:

    public function set {labelText(value:String):void}

    this.textLabel.text = value

    }

    Although "textLabel" exists in all children three, when compiling dialogue gives the error "property may be undefined textLabel" because it does not exist in the base class. However, if I create a variable called textLabel, this causes a conflict because the base class and the MovieClip linked to the class children have two different objects with the same name.

    I can solve this problem by making a dynamic class of dialogue , but to do a dynamic class opens a host of other issues. There is another strategy that works here? I know that I could add the TextField object in code, but I want coding static layouts rather than create them in the IDE is losing one of the greatest benefits of the Flash.

    Forum text editor pane does not render this message properly at all. If all goes well, that gets fixed when I post.

    Yes I see.  This is a screw-up of the compiler.

    just get 'this' in your base as a MovieClip class:

    public function set {labelText(value:String):void}

    MovieClip (that).textLabel.text = value

    }

  • I need help which extends the MovieClip class

    I want to add a property to the MovieClip class. I have just a bunch of clips that are placed on the stage by reading an XML file and creating lots of clips from the information in them. Now, I need to know what MovieClips were created under previous clips, and I think that the best way to do it would be extending the MovieClip class and add a property of the order.

    I have some problems however: I do not know how to set or get this property of order within the main Clip, I do not know how to put this clip in my movie, and I don't know how to create them dynamically (just do something like var myNewObjectOfExtendedClass: myExtendedClassName = new myExtendedClassName?)

    This is the code that I have on my category Advanced, called Expando.as:

    Expando class extends MovieClip {}

    _order:Number private var;

    public function get command (): number {}

    return _order;

    }

    order(nOrder:Number):Void {} public function public set

    _order = nOrder;

    }

    }

    I recommend that you see for the tutorial of the tree in order to see how this should be done.  I think you are missing some basics.

  • Cannot filter data with the extended class

    Hello

    I have a small question on the PortableObject format. I created a class that extends PortableObject interface and implementation of methods of serializer as well. I've updated in the file config.xml - pof as well. If I insert the objects of that type of object in the cache, they get inserted correctly and I can filter the values based on the getters defined in the class. Everything works fine here.

    Now I'm expanding the existing class I. We have our custom API we have built for our domain objects. I need to store these objects in the cache. So, naturally, I need to implement the PortableObject interface for this. So, instead of creating a new class with the new series of getters and setters and local fields, I extend our domain class to create a new class that implements the PortableObject interface. Instead of setting the local fields and getters and setters, I'm reusing those provided by my existing class. Now, I can insert the new class objects in the cache. But I can't filter values for objects of this new class.

    Let me show you what exactly I am trying to achieve by giving a small example:

    Domain class:

    Class person
    *{*
    private String person_name;

    * public String getPerson_name() {return person_name ;} *}
    * public String setPerson_name (person_name) {this.person_name ;} person_name = *}
    *}*

    The new class that implements PortableObject interface:

    class ExtPerson extends implements person PortableObject
    *{*
    public static final PERSON_NAME = 0;

    * public Sub readExternal (PofReader reader) throws IOException {*}
    setPerson_name (reader.readString (PERSON_NAME));
    *}*

    * public methods void writeExternal (writer PofWriter) throws IOException {*}
    writer.writeString (PERSON_NAME, getPerson_name());
    *}*

    * / / And HashCode, Equals and ToString methods, all implemented using the Get accessor of the person class *.
    *}*

    So, if I create a new class ExtPerson extend the Person class and write all methods, store objects in the cache and run the following query, I get the size printed

    System.out.println ((cache.entrySet (EqualsFilter ("getPerson_name", "ABC"))) .size ());

    But if I use the extended class and insert the values into the cache and if I use the same query to filter, I get 0 displayed on the console.

    System.out.println ((cache.entrySet (EqualsFilter ("getPerson_name", "ABC"))) .size ());

    So, can anyone say exactly what is the cause?


    Thank you!

    ContainAnyFilter doesn't work the way you expect.

    Here's the java doc.

    "Filter that tests a value of Collection or array object returned by a method of containment of any value as a whole."

    The return of the object by the get method must be an array of Collection or an object, it will return false if the object of the return of Extractor is not a type of Collection or array.

    or in your case, it only works if the getPerson_name() returns an array of strings.

    You probably want to use talk.

  • in the 2.0 class objects - how to swap the depths of a clip

    How do put you an object up? If it's just a clip, I could do a swapdepths, but if it's a clip which is part of an object YOU 2.0, how to exchange the depths of the entire object?

    I create 2 objects (same class) each with a movieclip in their breast. The clip is created on a single level with getNextHighestDepth().

    I have a button that tries to swapDepths of 2 objects, but I can't make it work. Can anyone help?


    Here are the details:

    1. create a symbol in the library called "someShape_mc" and put a form in it - a circle, a square, either - this symbol is exported for action script and received a class AS "ClassObject" 2.0 (I also put a dynamic text in the form field to display the current depth - it is called "depth_txt")

    2. create a button called 'swap_btn' on the stage.

    Frame 1 to the following actionscript code:

    var BottomObject:ClassObject = new ClassObject(this,100,150);
    var topObject:ClassObject = new ClassObject(this,110,160);

    for the button Add this:

    {Swap_btn.onRelease = Function ()}

    Try it with the full path:
    _root. BottomObject.__LocalMovieClip.swapDepths (_root.topObject.__LocalMovieClip);

    Try it with just the objects:
    BottomObject.__LocalMovieClip.swapDepths (topObject.__LocalMovieClip);

    Try it with the object as a movieclip
    BottomObject.swapDepths (topObject);
    trace ("he Swap?");

    Try it with a method in the class...
    BottomObject.swapIt (topObject.__LocalMovieClip);
    BottomObject.swapIt (topObject);
    trace ("nope... no permutation in progress...");
    }

    ================================

    Here is the AS file: 'ClassObject.as. '

    ClassObject class extends MovieClip {}
    var __LocalMovieClip;
    var __Depth;
    function ClassObject (passedIn_mc:MovieClip, x: Number, y: Number) {}
    __Depth = passedIn_mc.getNextHighestDepth ();
    __LocalMovieClip = passedIn_mc.attachMovie ("someShape_mc", "__LocalMovieClip", __Depth);
    trace ("a form to" + __Depth);

    __LocalMovieClip._x = x;
    __LocalMovieClip._y = y;
    __LocalMovieClip.depth_txt. Text = __Depth;

    }

    public void swapIt (targetMc) {}
    __LocalMovieClip.swapDepths (targetMc);
    __LocalMovieClip.depth_txt. Text = __LocalMovieClip.getDepth (); no difference.
    trace ("tried to Exchange class...");
    }
    }


    ========================
    So - the goal is to be 'down' class on the top of the object of 'top '. Button tries various methods of Exchange from the depths of clips – but it is not one that works. What Miss me?

    TIA
    Ferd

    aHA! I got it! Thank you very much - I am not you! good eye!

  • LoadMovie and custom MovieClip class

    Hi, I am trying to create a custom class of MovieClip with loadMovie, but it does not work.

    I created a symbol and script action clip from movie-related, such as:
    class CustomMovieClip extends MovieClip {... custom functions to set the behavior, onMouseMove, delivery, etc...}
    It works all fine until I called a loadMovie instance, try to change the shape.

    As I searched, I thought that loadMovie can ruin you if you something like mc.onPress =... but
    What is the case for a custom class? Hope not.

    Any help?

    Solved the problem myself. I write it here so others can find it.
    Basically, you can do loadMovie directly an instance of the CustomMovieClip class.
    It will mess up all the methods that you have defined in the class.
    Workaround is to perform loadMovie to a variable in the class.
    Complete working example is here:

    1. create a project MCTest.flp
    2. prepare the Movie1.swf (simple form)
    3. create a Flash MCTest.fla document
    4. create an ActionScript CustomMovieClip.as file:
    class CustomMovieClip extends MovieClip {}
    onPress() {} function
    trace ("delivery");
    }
    }
    6. create a symbol of CustomMovieClipContent:
    Behavior: Movie Clip
    Get anything out.
    5. create a symbol of CustomMovieClip:
    Behavior: Movie Clip
    ID: CustomMovieClip
    As a class 2.0: CustomMovieClip
    Export for ActionScript: Yes
    Export in the first frame: Yes
    Open the editor and drag & drop CustomMovieClipContent, name it "content."
    6 edit ActionScript in MCTest.fla > Scene 1 > layer 1 > 1 Frame
    attachMovie ("CustomMovieClip", "customMovieClip1", 0, {_x:100, _y:100});})
    customMovieClip1.contents.loadMovie ("Movie1.swf");
    7 Preview and you see two clips.
    Click the object, and "delivery" is printed in the output.

  • How to change the alignment movieclip point in time...

    I want to change the registration point of my movieclip which is an image at the click of mouse position please suggest me what I can do.

    I use this Actionscript code for which is also made of ZoomIn and zoom to the image movieclip.

    package {}

    import flash.display.Sprite;

    SerializableAttribute public class Main extends Sprite {}

    public var imgW:Number = 0;

    public var imgH:Number = 0;

    public void Main() {}

    the constructor code

    imgW = IMG_MC.width;

    imgH = IMG_MC.height;

    IN_BTN.addEventListener (MouseEvent.Click, zoomIn);

    IN_BTN.addEventListener (MouseEvent.ROLL_OVER, zoomInOver);

    IN_BTN.addEventListener (MouseEvent.ROLL_OUT, zoomInOut);

    OUT_BTN.addEventListener (MouseEvent.Click, zoomOut);

    OUT_BTN.addEventListener (MouseEvent.ROLL_OVER, zoomOutOver);

    OUT_BTN.addEventListener (MouseEvent.ROLL_OUT, zoomOutOut);

    }

    private void zoomIn(event:MouseEvent):void {}

    If (IMG_MC. < 800 width) {}

    IMG_MC. Width = IMG_MC.width + (imgW * 0.10);

    IMG_MC. Height = IMG_MC.height + (imgH * 0.10);

    }

    }

    private void zoomInOver(event:MouseEvent):void {}

    IN_BTN.Alpha = 0.5;

    }

    private void zoomInOut(event:MouseEvent):void {}

    IN_BTN.Alpha = 1.0;

    }

    private void zoomOutOver(event:MouseEvent):void {}

    OUT_BTN.Alpha = 0.5;

    }

    private void zoomOutOut(event:MouseEvent):void {}

    OUT_BTN.Alpha = 1.0;

    }

    private void zoomOut(event:MouseEvent):void {}

    If (IMG_MC. Width > imgW) {}

    IMG_MC. Width = IMG_MC.width - (imgW * 0.10);

    IMG_MC. Height = IMG_MC.height - (imgH * 0.10);

    }

    }

    }

    }

    Thank you in advance.

    This is not going to work.  This person is doing nothing more that move a displayobject.

    This can be used where the x's are compared to the chronology of the displayobject:

    function changeRegPtF(dobj:DisplayObjectContainer,x:Number,y:Number):void {}

    var r: Rectangle = dobj.getRect (dobj);

    for (var i: int = 0; i

    dobj.getChildAt (i) .x-= r.x + x;

    dobj.getChildAt (i) there = r.y + y;

    }

    dobj.x += r.x + x;

    dobj.y += r.y + y;

    }

  • The extension of class + access to the children of the base class

    Hello.

    I am trying to create a kind of panels of information and tool for a project, similar to those on the Adobe Suite products. They will have a tab that you can double-click to open or close and title of the Panel will be on this tab.

    So I created a video called main and in it, I placed a textfield called txtTitle and a rectangular MovieClip called mTab. I duplicated the main twice on the stage, called PanelA and PanelB and add individual, but kept the txtTitle and mTab.  I edited the linking options of PanelA and PanelB to link to specific custom classes.

    First, I created a base for the main class.

    package com.panels {}

    import flash.display.MovieClip;

    import flash.events.MouseEvent;

    Import fl.text.TLFTextField;

    //

    SerializableAttribute public class MyPanel extends MovieClip {}

    //

    public void MyPanel (): void {}

    txtTitle.mouseEnabled = false;

    mTab.doubleClickEnabled = true;

    mTab.addEventListener (MouseEvent.DOUBLE_CLICK, clickedPanel);

    }

    }

    }

    And then the classes of Group A and B, which extend from the main.

    package com.panels {}

    import com.panels.MyPanel;

    //

    SerializableAttribute public class PanelA {MyPanel extends

    //

    public void PanelA (): void {}

    }

    }

    }

    When I test the movie, I get an error stating that 'Access of undefined property txtTitle' (and even to mTab). If I have just a PanelA link to the main class it all work - I got it to open, close, dragged with the mouse... I can access mTab, txtTitle and something else is already on the scene. But if I extend the class, I can't. Anyone know why this happens and how best to make it work? Thank you.

    use:

    SerializableAttribute public class MyPanel extends MovieClip {} Dynamics

    //

    public void MyPanel (): void {}

    this.txtTitle.mouseEnabled = false;

    this. mTab.doubleClickEnabled = true;

    ce. mTab.addEventListener (MouseEvent.DOUBLE_CLICK, clickedPanel);

    }

    }

    }

  • a multiple movieclips class

    Hello

    Yet once I fell on the dilemma of having a class on a Movieclip a desire then to use the same class on another clip. He put on another library attached does not work. I tried to use a class that extends my class but that extends a class extended movieclip seems misleading in flash.

    Is there a clean way without reprogramming of my class to do? Or I copy my class several times with a different name?

    TIA

    The class for Content1 was Content1 and its basic ContentFader class. Same Content2 is class: Content2 and the Base of the ContentFader class.

    Then just to mix it up a little. I created a Content1.as file, but none for Content2. Everything works as I expect.

    I guess it's as all y ' All thought that the base class meant something other than what I think he means? If that were the case it should say DisplayObject or actually all the object.

  • To access the data that is loaded by the XML Loader class

    Hi guys,.

    I have trouble accessing the data loaded by external class.

    Here is my code:

    Main class:

    package {}

    import flash.display.MovieClip;
    nucleus of import. XMLLoader;

    SerializableAttribute public class Main extends MovieClip {}

    var projectSetupMainMenuXML:Boolean = true;

    public void Main() {}

    If {(projectSetupMainMenuXML)
    var mainMenuXML = new XMLLoader ("menu.xml");
    }
    }
    }
    }

    XMLLoader class:

    package base {}

    import flash.display. *;
    import flash.events. *;
    flash.net import. *;

    public class XMLLoader {}
    private var mainMenu:XML;
    private var urlLoader:URLLoader;

    public function XMLLoader (mainMenuPath:String) {}
    var urlRequest:URLRequest = new URLRequest (mainMenuPath);
    urlLoader = new URLLoader();
    urlLoader.addEventListener (Event.COMPLETE, completeListener);
    urlLoader.load (urlRequest);
    }

    private void completeListener(e:Event):void {}
    mainMenu = new XML (urlLoader.data);
    e.target.removeEventListener (Event.COMPLETE, completeListener);
    }
    }
    }

    Now, I want to create another external class (called MainMenu) which will be launched from the main class.

    This class should create the menu based on the loaded XML class.

    My question is, how can I make use of the loaded content through the XMLLoader class within the class MainMenu XML?

    Thank you.

    I think you have to use XMLLoader as a singleton - with the properties and static methods. In this way, you can load XML only once and make available XMl data to any object in the application.

  • Several internal classes with an extended public class

    Hello


    I found a strange behavior, I wonder if someone can explain.


    If I have a class that extends another, for example,

    package {
         import flash.display.Sprite;
         public class MySprite extends Sprite{
              public function MySprite():void{}
         }
    }

    and extend this class, if several internal classes are defined:

    package {     
         public class MainClass extends MySprite {          
              public function MainClass():void{}          
         }
    }
    class HelperA{
         function HelperA():void{}
    }
    class HelperB{
         function HelperB():void{}
    }
    

    I get the following error:


    VerifyError: Error #1014: Class test.windows::MySprite could not be found.
    
    ReferenceError: Error #1065: Variable MainClass is not defined.
    Note that this happens only (AFAIK) when the package public class extends another class, and several internal classes are defined.
    Inner classes even need not to be instantiated or referenced to generate the error (the rudimentary code above will mistake).
    If only a single class domestic is defined, it works very well (no error).  Even if the class is instantiated.
    If someone could shed some light on this, I would be grateful it.

    You are right.

    I used cs3 and had no problems.  When I opened Untitled - 2.fla and tested in cs4, I received the same error messages like you.

    It is a bug in cs4.

  • Using the ActionScript - MovieClip

    Hi all

    I was hoping that someone will be able to help, I have a mc who is essentially a rectangle filled that a width of 1px. I need to work on the actionscript code to make the bar more wide by so many pixels as the process of editing on another mc. It's a bit like a loading bar progress however I didn't need to load content I have what it takes to give the user the appearance of lead-time. The main mc shows where the shipments come from the four corners of the book by land, air and sea. As is the case, I need the script action to move the progress bar of the week leadtime 6-0 week a total of 550 pixels width.

    Any help would be much appreciated.

    Dave,

    > I have an mc who is essentially a rectangle filled that
    > a width of 1px. I need to work on the actionscript code to
    > do the bar get wider by so many pixels as the
    > chronology of the process on another mc.

    The trick of this kind of animation - for any sort of animation - is to
    adjust a visual element (here, width) over time. You're dealing with a
    movie clip, so the best is to consult the ActionScript 2.0 Language
    Entry of the reference to the "MovieClip class. Think of a class as a blue
    print: it defines a certain type of object, indicating that it is
    characteristics (properties), the things he can do (methods) and the
    things it can react (events).

    Among properties, you will find a _width property. You will need to
    give your video clip to an instance name (see the Inspector while
    clip is selected) - which allows to reference members of the MovieClip class on
    which * particular * instance of MovieClip. If the width is covered; We must now
    Find out how the "over time" part.

    In the MovieClip class, you will see an onEnterFrame event, that is
    sent at the same time as the framerate of your film. You are going to assign a
    function event, then tell the function what to do.

    myClip.onEnterFrame = function (): Void {}
    This ._width =? ;
    }

    This code would go in a frame, and that's why names example
    are important. If the code is in a frame, it needs to know which object (s)
    He's talking about.

    If you want to increment the width, you can use the ++ operator, which
    Adds 1 to a value, or the operator +=, which allows you to specify. For
    for example...

    myClip.onEnterFrame = function (): Void {}
    This ._width += 4;
    }

    ... would increase width of 4 pixels myClip whenever the film goes into a
    Frame (this product even when the playhead is stopped). In a sense, this makes
    no difference which clip you use to generate the ticking enterframe. There
    based on the framerate of the movie, which does not change. Use the logical operators
    to determine when to change or stop (search "operators" in the documentation
    to see all of your choices).

    myClip.onEnterFrame = function (): Void {}
    If (this ._width< 500)="">
    This ._width += 4;
    } else {}
    delete this.onEnterFrame;
    }
    }

    In this last example, width of myClip is checked against arbitrary
    Figure, 500, to see if it's even smaller than that. If it is less, it
    increases the width of the myClip by 4; otherwise, he kills the onEnterFrame event
    Manager (the function).

    David Stiller
    Adobe Community Expert
    Dev blog, http://www.quip.net/blog/
    "Luck is the residue of good design."

  • Satellite Pro P100: The extended warranty is not available?

    Hi, just about to buy a Satellite Pro P100, but when we look at the warranty I don't see this pattern on the list machines covered by the extended warranty available at Toshiba.

    Any ideas?

    It makes me a little nervous if Toshiba does not cover this model for extended warranty.

    Hello

    Did you mean Satellite Pro P100 or Satellite P100-xxx?
    I asked it because I don t find any laptops Satellite Pro P100 on the Toshiba site. Only Satellite P100-xxx are available and these books are very new. Maybe you checked the list of bad guaranteed?

    PS: I can t believe that the extended warranty is not available on this device.

  • the extended keyboard, iPad Pro disappeared and I would like to know how to get it back.

    One of the things I liked on my new iPad Pro was the extended virtual keyboard. The iPad virtual keyboard Pro has disappeared and now I only have the keyboard virtual iPad ordinary. I have updated to iOS 9.3 to see if the previous virtual keyboard would be back. How can I find the extended keyboard?

    What App are you currently?

    Apps can dictate what keyboard is displayed.

    I get the extended keyboard to tell the Notes app, but not in Facebook for example.

  • Qosmio G30: How to turn on the extended desktop?

    It is possible to extend the desktop on the screen of the laptop and and external monitor when connected to an external monitor? I see in the manual that he talks with the "simultaneous" external display and the monitor to the laptop, but I need her to be not only "reproduced" and "extended" on both monitors for both monitors.

    In addition, these two monitors can operate with different resolutions (for example, 1280 x 1024 on the resolution of the laptop standard and external)?

    It is also possible to drive two external monitors of the single monitor out (I do not, but thought I would ask)?

    Thank you

    Phil

    Hello

    Of course, it should be possible to activate the extended desktop.
    Go to the display properties. Then, choose the number of Monitor 2 and choose the option to extend my desktop on this monitor
    It is also possible to use different resolutions.

Maybe you are looking for