Removing dynamically created movieclips

The following dynamically creates a set of movieclips that
I'm using instead of the list component. Each clip has an embedded
text field(txt) that displays the title of an RSS feed. I have
multiple RSS feeds that I want to load however, and when a seperate
button is clicked, I want to delete the above mentioned mc's so
that they can be replaced by new ones. I have tried loading the
values into an array, then clearing the array when the button is
clicked, but the mc's still remain.

I thought about my methods this morning at breakfast.
Eventually, the list will grow to a size too big for the
stage. I'm going to need a container so that I can scroll through
the items at some point.
I may as well add a listener to each button created that will
load a specific container to nest the lists. When a different
button is clicked I can simply use the removedChild(container) and
get rid of the movies in one fell swoop as opposed to identifying
each one for removal. The container can easily be controlled and
scrolled using its y value as well.
I have yet to work with this but I can think of an issue
already. If I register the container at the top, my dynamic mc
lists will start there, each with an increase in y value. The top
of that container will become the limit for scrolling upwards.
How will I note a y value to indicate the bottom of the lists
for scrolling purposes? Each button will load a container with a
unique amount of mc lists.

Similar Messages

  • Nesting dynamically created movieclip at runtime?

    Is it possible to nest a movieclip into another dynamically
    created movieclip at runtime? The commented line of code works, but
    I am trying to nest a movieclip after it is created into
    another.

    you can nest movieclips by using your commented code.
    however, you cannot change a movieclip's parentage after it's
    created.
    you can "fake" a parentage change by creating a movieclip
    with the parentage you want, copying its assets to the newly
    created movieclip with the desired parentage and finally removing
    the original movieclip.

  • How do I reference a dynamically created MovieClip from another MovieClip?

    Hi,
    I'd be grateful for any pointers to the following problem:
         I'm having trouble referencing dynamically created MovieClips (links in a side panel on a Flash website, created from an XML file) from the current MovieClip (the currently selected link).
         I wish to freeze the the link/MovieClip in its mouseOver state once it has been clicked - this part works. When a new link/MovieClip is clicked on, I wish to release the previously clicked-on link from its mouseOver state, which is what I've so far been unable to do.
         My problem seems to be referencing the previous link/MoveClip. I've used the trace statement trace(MovieClip(this).name) to determine that the MovieClips are named item0, item1, item2 and so on. However, I've been unable thus far to reference the previous clip thus far. I've tried to trace the route to the MovieClip from the stage, and also tried MovieClip(parent).item0.gotoAndStop and lots of other different permutations, but to no avail. It's the fact they seem to be in a container called 'panel' which is defeating me.
         Here's a live version I've uploaded, which might explain the problem better. Click on "UBER UNS" in the top menu bar to get to the page in question. It's the links on the left-hand side (Historie, Unser Team, etc.) which are the problem. You'll see that once they've been clicked on they remain in their mouseOver state.
         This is the code in question on the fla file, which is a file I did not create myself. The parts in black work fine; it's the red parts where the problem lies:
    import flash.display.MovieClip;
    panel.buttonMode = true;
    var lang:uint = 1;
    var url_Link:String=MovieClip(root).program.websiteXML .language[lang].pages.titlePage[MovieClip(root).program.linkPage].texts.pageList.txt[numT XT].@link;
    var urlPage:Number=Number(MovieClip(root).program.webs iteXML.language[lang].pages.titlePage[MovieClip(root).program.linkPage].texts.pageList.tx t[numTXT].@linkPage);
    var request:URLRequest;
    var linkIndex:uint;
    var lastClickedLink:MovieClip;   //This is supposed to store the last link that has been clicked - it doesn't work
    panel.addEventListener(MouseEvent.CLICK, clicLink);
    panel.addEventListener(MouseEvent.ROLL_OVER, mouseOverLink);
    panel.addEventListener(MouseEvent.ROLL_OUT, mouseOutLink);
    function mouseOverLink(event:MouseEvent):void {
          MovieClip(this).gotoAndPlay('s1');
    function mouseOutLink(event:MouseEvent):void {
          if(numTXT !== (linkIndex - 1)/5){         //freezes mouseOver state if this is the link for the current page
               MovieClip(this).gotoAndPlay('s2');
    function clicLink(event:MouseEvent):void {
          var linkpage:uint = MovieClip(root).program.linkPage;
          if (url_Link) {
               request = new URLRequest(url_Link);
               navigateToURL(request);
          } else {
               linkIndex = numTXT * 5 + 1;
               if(linkpage == 1){
                   MovieClip(root).chPages.cont.page_about_mc.page3Tu  rner_mc.gotoAndStop([linkIndex]);
              } else if (linkpage == 2){
                   MovieClip(root).chPages.cont.page3_mc.page3Turner_  mc.gotoAndStop([linkIndex]);
         lastClickedLink.gotoAndPlay('s2');  // this is supposed to release the previous clicked-on link from it's mouseOver state - doesn't work
         lastClickedLink = MovieClip(this).name;    //this is supposed to set the new link as the last link clicked after the old one has been released from it's mouseOver state - doesn't work
    If anyone can help, that would be great.

    What you might be after for that line is to use:
    lastClickedLink = MovieClip(event.currentTarget);
    For what you show, the name property of an object is a String, so I would expect you to be getting an error regarding trying to get a String to act like a MovieClip when you try to tell it to gotoAndPlay('s2').

  • Dynamically create movieclips

    I want to be able to dynamically create movieclips in flash based on a midi file.
    So I converted the midi file to an .xml file first. I traced the number of events going on and the time of when an event starts or ends.
    So to keep track of those times, I put them in an array.(keytimer[i])
    The timer goes up 1microsecond at a time, for as long as the song is; in this case 190080 microseconds.
    The thing I want is when the timer equals a number in this array(keytimer[i]), and only when the attribute is 'NoteOn', then it should create a movieclip.
    I tried doing it like this; but he doesnt recognise the array:
    if (current==keytimer[i]) {
    trace("yes");
    Any help is more than welcome
    Flash file:
    var xmlLoader:URLLoader = new URLLoader();xmlLoader.addEventListener(Event.COMPLETE, showXML);xmlLoader.load(new URLRequest("for_elise_by_beethoven.xml"));function showXML(e:Event):void { XML.ignoreWhitespace=true; var songs:XML=new XML(e.target.data); trace(songs.Track.Event.length()); var i:Number; var keytimer:Array = new Array(); for (i=0; i < songs.Track.Event.length(); i++) { keytimer[i] =(" Time of the key: "+ songs.Track.Event[i].Absolute.text()); if (current==keytimer[i]) { trace("yes"); } //trace(keytimer[i]); //trace(" NoteOn: "+ songs.Track.Event[i].NoteOn.@Note); //trace(" NoteOff: "+ songs.Track.Event[i].NoteOff.@Note); //trace(" "); } var myTimer:Timer=new Timer(1,190000); myTimer.addEventListener(TimerEvent.TIMER,doStuff); var current:Number=0; myTimer.start(); function doStuff(event:TimerEvent):void { current++; trace("current: "+ current); trace("keytimer: "+ keytimer[i]); //trace("keytimer: "+ keytimer[i]); /*if (current==keytimer[i]) { trace("yes"); }*/  }}
    The current xml file: (name: for_elise_by_beethoven.xml)
    <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE MIDIFile PUBLIC  "-//Recordare//DTD MusicXML 0.9 MIDI//EN"  "http://www.musicxml.org/dtds/midixml.dtd"><MIDIFile><Format>1</Format><TrackCount>4</TrackCount><TicksPerBeat>960</TicksPerBeat><TimestampType>Absolute</TimestampType><Track Number="0">  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 12 00 00 7f 7f 00</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 1c 32 30 30 35 2e 31 32 2e 30 32</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <TrackName>Track 0</TrackName>  </Event>  <Event>    <Absolute>0</Absolute>    <SetTempo Value="857143"/>  </Event>  <Event>    <Absolute>0</Absolute>    <EndOfTrack/>  </Event></Track><Track Number="1">  <Event>    <Absolute>0</Absolute>    <ProgramChange Channel="1" Number="0"/>  </Event>  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 09 40 48</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <CopyrightNotice>2006 by forelise.com</CopyrightNotice>  </Event>  <Event>    <Absolute>0</Absolute>    <InstrumentName>Piano</InstrumentName>  </Event>  <Event>    <Absolute>0</Absolute>    <TrackName>Für Elise</TrackName>  </Event>  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 06 47 65 6e 65 72 61 6c 20 4d 49 44 49</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <TimeSignature Numerator="3" LogDenominator="3" MIDIClocksPerMetronomeClick="12" ThirtySecondsPer24Clocks="8"/>  </Event>  <Event>    <Absolute>0</Absolute>    <MIDIChannelPrefix Value="00"/>  </Event>  <Event>    <Absolute>960</Absolute>    <NoteOn Channel="1" Note="76" Velocity="71"/>  </Event>  <Event>    <Absolute>1200</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>1200</Absolute>    <NoteOn Channel="1" Note="75" Velocity="38"/>  </Event>  <Event>    <Absolute>1440</Absolute>    <NoteOff Channel="1" Note="75" Velocity="0"/>  </Event>  <Event>    <Absolute>1440</Absolute>    <NoteOn Channel="1" Note="76" Velocity="57"/>  </Event>  <Event>    <Absolute>1680</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>1680</Absolute>    <NoteOn Channel="1" Note="75" Velocity="70"/>  </Event>  <Event>    <Absolute>1920</Absolute>    <NoteOff Channel="1" Note="75" Velocity="0"/>  </Event>  <Event>    <Absolute>1920</Absolute>    <NoteOn Channel="1" Note="76" Velocity="76"/>  </Event>  <Event>    <Absolute>2160</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>2160</Absolute>    <NoteOn Channel="1" Note="71" Velocity="76"/>  </Event>  <Event>    <Absolute>2400</Absolute>    <NoteOff Channel="1" Note="71" Velocity="0"/>  </Event>  <Event>    <Absolute>2400</Absolute>    <NoteOn Channel="1" Note="74" Velocity="76"/>  </Event>  <Event>    <Absolute>2640</Absolute>    <NoteOff Channel="1" Note="74" Velocity="0"/>  </Event>  <Event>    <Absolute>2640</Absolute>    <NoteOn Channel="1" Note="72" Velocity="83"/>  </Event>  <Event>    <Absolute>2880</Absolute>    <NoteOff Channel="1" Note="72" Velocity="0"/>  </Event>  <Event>    <Absolute>2880</Absolute>    <NoteOn Channel="1" Note="69" Velocity="89"/>  </Event>  <Event>    <Absolute>2880</Absolute>    <SequencerSpecific>05 0f 0f 02</SequencerSpecific>  </Event>  <Event>    <Absolute>2880</Absolute>    <NoteOn Channel="1" Note="45" Velocity="64"/>  </Event>  <Event>    <Absolute>3120</Absolute>    <NoteOff Channel="1" Note="45" Velocity="0"/>  </Event>  <Event>    <Absolute>3120</Absolute>    <NoteOn Channel="1" Note="52" Velocity="64"/>  </Event>  <Event>    <Absolute>3360</Absolute>    <NoteOff Channel="1" Note="52" Velocity="0"/>  </Event>  <Event>    <Absolute>3360</Absolute>    <NoteOn Channel="1" Note="57" Velocity="70"/>  </Event>  <Event>    <Absolute>3600</Absolute>    <NoteOff Channel="1" Note="69" Velocity="0"/>  </Event>  <Event>    <Absolute>3600</Absolute>    <NoteOff Channel="1" Note="57" Velocity="0"/>  </Event>  <Event>    <Absolute>3600</Absolute>    <NoteOn Channel="1" Note="60" Velocity="76"/>  </Event>  <Event>    <Absolute>3840</Absolute>    <NoteOff Channel="1" Note="60" Velocity="0"/>  </Event>  <Event>    <Absolute>3840</Absolute>    <NoteOn Channel="1" Note="64" Velocity="76"/>  </Event>  <Event>    <Absolute>4080</Absolute>    <NoteOff Channel="1" Note="64" Velocity="0"/>  </Event>  <Event>    <Absolute>4080</Absolute>    <NoteOn Channel="1" Note="69" Velocity="76"/>  </Event>  <Event>    <Absolute>4320</Absolute>    <NoteOff Channel="1" Note="69" Velocity="0"/>  </Event>  <Event>    <Absolute>4320</Absolute>    <NoteOn Channel="1" Note="71" Velocity="83"/>  </Event>  <Event>    <Absolute>4320</Absolute>    <SequencerSpecific>05 0f 0f 02</SequencerSpecific>  </Event>  <Event>    <Absolute>4320</Absolute>    <NoteOn Channel="1" Note="40" Velocity="64"/>  </Event>  <Event>    <Absolute>4560</Absolute>    <NoteOff Channel="1" Note="40" Velocity="0"/>  </Event>  <Event>    <Absolute>4560</Absolute>    <NoteOn Channel="1" Note="52" Velocity="64"/>  </Event>  <Event>    <Absolute>4800</Absolute>    <NoteOff Channel="1" Note="52" Velocity="0"/>  </Event>  <Event>    <Absolute>4800</Absolute>    <NoteOn Channel="1" Note="56" Velocity="70"/>  </Event>  <Event>    <Absolute>5040</Absolute>    <NoteOff Channel="1" Note="71" Velocity="0"/>  </Event>  <Event>    <Absolute>5040</Absolute>    <NoteOff Channel="1" Note="56" Velocity="0"/>  </Event>  <Event>    <Absolute>5040</Absolute>    <NoteOn Channel="1" Note="64" Velocity="76"/>  </Event>  <Event>    <Absolute>5280</Absolute>    <NoteOff Channel="1" Note="64" Velocity="0"/>  </Event>  <Event>    <Absolute>5280</Absolute>    <NoteOn Channel="1" Note="68" Velocity="76"/>  </Event>  <Event>    <Absolute>5520</Absolute>    <NoteOff Channel="1" Note="68" Velocity="0"/>  </Event>  <Event>    <Absolute>5520</Absolute>    <NoteOn Channel="1" Note="71" Velocity="76"/>  </Event>  <Event>    <Absolute>5760</Absolute>    <NoteOff Channel="1" Note="71" Velocity="0"/>  </Event>  <Event>    <Absolute>5760</Absolute>    <NoteOn Channel="1" Note="72" Velocity="83"/>  </Event>  <Event>    <Absolute>5760</Absolute>    <NoteOn Channel="1" Note="45" Velocity="64"/>  </Event>  <Event>    <Absolute>6000</Absolute>    <NoteOff Channel="1" Note="45" Velocity="0"/>  </Event>  <Event>    <Absolute>6000</Absolute>    <NoteOn Channel="1" Note="52" Velocity="70"/>  </Event>  <Event>    <Absolute>6240</Absolute>    <NoteOff Channel="1" Note="52" Velocity="0"/>  </Event>  <Event>    <Absolute>6240</Absolute>    <NoteOn Channel="1" Note="57" Velocity="76"/>  </Event>  <Event>    <Absolute>6480</Absolute>    <NoteOff Channel="1" Note="72" Velocity="0"/>  </Event>  <Event>    <Absolute>6480</Absolute>    <NoteOff Channel="1" Note="57" Velocity="0"/>  </Event>  <Event>    <Absolute>6480</Absolute>    <NoteOn Channel="1" Note="64" Velocity="76"/>  </Event>  <Event>    <Absolute>6720</Absolute>    <NoteOff Channel="1" Note="64" Velocity="0"/>  </Event>  <Event>    <Absolute>6720</Absolute>    <NoteOn Channel="1" Note="76" Velocity="76"/>  </Event>  <Event>    <Absolute>6960</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>6960</Absolute>    <NoteOn Channel="1" Note="75" Velocity="64"/>  </Event>  <Event>    <Absolute>7200</Absolute>    <NoteOff Channel="1" Note="75" Velocity="0"/>  </Event>  <Event>    <Absolute>7200</Absolute>    <NoteOn Channel="1" Note="76" Velocity="76"/>  </Event>  <Event>    <Absolute>7440</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>7440</Absolute>    <NoteOn Channel="1" Note="75" Velocity="70"/>  </Event>  <Event>    <Absolute>7680</Absolute>    <NoteOff Channel="1" Note="75" Velocity="0"/>  </Event>  <Event>    <Absolute>7680</Absolute>    <NoteOn Channel="1" Note="76" Velocity="76"/>  </Event>  <Event>    <Absolute>7920</Absolute>    <NoteOff Channel="1" Note="76" Velocity="0"/>  </Event>  <Event>    <Absolute>7920</Absolute>    <NoteOn Channel="1" Note="71" Velocity="76"/>  </Event>  <Event>    <Absolute>8160</Absolute>    <NoteOff Channel="1" Note="71" Velocity="0"/>  </Event>  <Event>    <Absolute>8160</Absolute>    <NoteOn Channel="1" Note="74" Velocity="76"/>  </Event>  <Event>    <Absolute>8400</Absolute>    <NoteOff Channel="1" Note="74" Velocity="0"/>  </Event>  <Event>    <Absolute>8400</Absolute>    <NoteOn Channel="1" Note="72" Velocity="76"/>  </Event>  <Event>    <Absolute>8640</Absolute>    <NoteOff Channel="1" Note="72" Velocity="0"/>  </Event>  <Event>    <Absolute>8640</Absolute>    <NoteOn Channel="1" Note="69" Velocity="83"/>  </Event>  <Event>    <Absolute>8640</Absolute>    <SequencerSpecific>05 0f 0f 02</SequencerSpecific>  </Event>  <Event>    <Absolute>8640</Absolute>    <NoteOn Channel="1" Note="45" Velocity="57"/>  </Event>  <Event>    <Absolute>8880</Absolute>    <NoteOff Channel="1" Note="45" Velocity="0"/>  </Event>  <Event>    <Absolute>8880</Absolute>    <NoteOn Channel="1" Note="52" Velocity="64"/>  </Event>  <Event>    <Absolute>9120</Absolute>    <NoteOff Channel="1" Note="52" Velocity="0"/>  </Event>  <Event>    <Absolute>9120</Absolute>    <NoteOn Channel="1" Note="57" Velocity="70"/>  </Event>  <Event>    <Absolute>9360</Absolute>    <NoteOff Channel="1" Note="69" Velocity="0"/>  </Event>  <Event>    <Absolute>9360</Absolute>    <NoteOff Channel="1" Note="57" Velocity="0"/>  </Event>  <Event>    <Absolute>9360</Absolute>    <NoteOn Channel="1" Note="60" Velocity="76"/>  </Event>  <Event>    <Absolute>9600</Absolute>    <NoteOff Channel="1" Note="60" Velocity="0"/>  </Event>  <Event>    <Absolute>9600</Absolute>    <NoteOn Channel="1" Note="64" Velocity="76"/>  </Event>  <Event>    <Absolute>9840</Absolute>    <NoteOff Channel="1" Note="64" Velocity="0"/>  </Event>  <Event>    <Absolute>9840</Absolute>    <NoteOn Channel="1" Note="69" Velocity="76"/>  </Event>  <Event>    <Absolute>10080</Absolute>    <NoteOff Channel="1" Note="69" Velocity="0"/>  </Event>  <Event>    <Absolute>10080</Absolute>    <NoteOn Channel="1" Note="71" Velocity="83"/>  </Event> 
              ...ETC...
      <Event>    <Absolute>185040</Absolute>    <NoteOff Channel="1" Note="56" Velocity="0"/>  </Event>  <Event>    <Absolute>185040</Absolute>    <NoteOn Channel="1" Note="64" Velocity="51"/>  </Event>  <Event>    <Absolute>185280</Absolute>    <NoteOff Channel="1" Note="64" Velocity="0"/>  </Event>  <Event>    <Absolute>185280</Absolute>    <NoteOn Channel="1" Note="72" Velocity="51"/>  </Event>  <Event>    <Absolute>185520</Absolute>    <NoteOff Channel="1" Note="72" Velocity="0"/>  </Event>  <Event>    <Absolute>185520</Absolute>    <NoteOn Channel="1" Note="71" Velocity="51"/>  </Event>  <Event>    <Absolute>185733</Absolute>    <ControlChange Channel="1" Control="64" Value="127"/>  </Event>  <Event>    <Absolute>185760</Absolute>    <NoteOff Channel="1" Note="71" Velocity="0"/>  </Event>  <Event>    <Absolute>185760</Absolute>    <SequencerSpecific>05 0f 0e</SequencerSpecific>  </Event>  <Event>    <Absolute>185760</Absolute>    <NoteOn Channel="1" Note="60" Velocity="45"/>  </Event>  <Event>    <Absolute>185760</Absolute>    <NoteOn Channel="1" Note="69" Velocity="45"/>  </Event>  <Event>    <Absolute>185760</Absolute>    <NoteOn Channel="1" Note="45" Velocity="45"/>  </Event>  <Event>    <Absolute>185760</Absolute>    <NoteOn Channel="1" Note="33" Velocity="45"/>  </Event>  <Event>    <Absolute>187200</Absolute>    <NoteOff Channel="1" Note="45" Velocity="0"/>  </Event>  <Event>    <Absolute>187200</Absolute>    <NoteOff Channel="1" Note="33" Velocity="0"/>  </Event>  <Event>    <Absolute>187200</Absolute>    <NoteOff Channel="1" Note="60" Velocity="0"/>  </Event>  <Event>    <Absolute>187200</Absolute>    <NoteOff Channel="1" Note="69" Velocity="0"/>  </Event>  <Event>    <Absolute>190048</Absolute>    <ControlChange Channel="1" Control="64" Value="0"/>  </Event>  <Event>    <Absolute>190080</Absolute>    <SequencerSpecific>05 0f 0a</SequencerSpecific>  </Event>  <Event>    <Absolute>190080</Absolute>    <EndOfTrack/>  </Event></Track><Track Number="2">  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 09 00 40</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 06 47 65 6e 65 72 61 6c 20 4d 49 44 49</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <TrackName>http://www.forelise.com/</TrackName>  </Event>  <Event>    <Absolute>0</Absolute>    <TimeSignature Numerator="3" LogDenominator="3" MIDIClocksPerMetronomeClick="12" ThirtySecondsPer24Clocks="8"/>  </Event>  <Event>    <Absolute>0</Absolute>    <ProgramChange Channel="2" Number="0"/>  </Event>  <Event>    <Absolute>0</Absolute>    <MIDIChannelPrefix Value="01"/>  </Event>  <Event>    <Absolute>0</Absolute>    <EndOfTrack/>  </Event></Track><Track Number="3">  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 09 00 40</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <SequencerSpecific>05 0f 06 47 65 6e 65 72 61 6c 20 4d 49 44 49</SequencerSpecific>  </Event>  <Event>    <Absolute>0</Absolute>    <TrackName>Composed by Ludwig van Beethoven</TrackName>  </Event>  <Event>    <Absolute>0</Absolute>    <TimeSignature Numerator="3" LogDenominator="3" MIDIClocksPerMetronomeClick="12" ThirtySecondsPer24Clocks="8"/>  </Event>  <Event>    <Absolute>0</Absolute>    <ProgramChange Channel="3" Number="0"/>  </Event>  <Event>    <Absolute>0</Absolute>    <MIDIChannelPrefix Value="02"/>  </Event>  <Event>    <Absolute>0</Absolute>    <EndOfTrack/>  </Event></Track></MIDIFile>

    var current:int=0;
    myTimer.start();
    function doStuff(event:TimerEvent):void {
    current++;
    trace("current: "+ current);
    trace("keytimer: "+ keytimer[i]);
    //trace("keytimer: "+ keytimer[i]);
    if (current==int(keytimer[i)]) {
    trace("yes");

  • Accessing dynamically created movieclips

    I have an application that I am adding movieclips to a
    container movieclip through a for loop and repeatedly calling
    myClip.addChild(theNewClip). Now I have a dozen clips in my
    container and it seems like the only way to access the clip is to
    use the getChildByName() method and cast it into a temporary clip
    so I can get at the its properties.
    Is this the best and/or only way to do this? Does the old AS2
    myContainer["theName"].property not work with dynamically created
    movieclips? It doesn't seem to work for me anymore.
    Anyway I am getting the clips now, but I was hoping someone
    could show me a better way to access a dynamically created movie
    clip.

    In AS3, this is probably not much better, but you can
    generically loop through all movie clips:

  • Dynamically create and remove TEXT items in forms

    Hi Guys,
    Is there a way to dynamically create and remove TEXT items in form. For example I have the EMP and DEPT table and when
    I select the EMP table name from the LOV, rows of the EMP table with column name and data should get displayed on the screen and likewise a similar action for DEPT table and
    so on. I have about 90 tables from where data could be required to view and edit. They all have varying number of columns.
    Any suggestions ?
    Thanks
    KMD
    null

    Use OLE concept of developer and map Excel as an object
    Nadeem
    null

  • Dynamically created Text field inside of empty Movieclip

    Hi there.
    My goal is to have a button that, when clicked, an empty
    movieclip is created and a text field is attached to it.
    I could write it easily if the newly created instance names
    where hard coded, the problem comes with the syntax to generate
    them dynamically.
    Here's the code i have so far:
    ActionScript Code:
    button.onRelease = function() {
    createText();
    var count:Number = 1;
    createText = function () {
    _root.createEmptyMovieClip("placeholder"+count,this.getNextHighestDepth());
    this["placeholder"+count].createTextField("my_txt"+count,
    this.getNextHighestDepth(), 100, 100, 100, 100); count++;
    After that's done i still need to assign a text value to the
    text field, which i have no clue on how to do it...
    In other words I want to accomplish something like:
    placeholder[count].my_txt[count].text = "my text";
    I hope it's not confusing... Any help would be greatly
    appreciated.
    Thanks in advance!

    if your createText() function isn't working the way you want
    check your use of "this" and "_root". if they're not the same,
    you're not referencing your newly created movieclip correctly. and
    your textfield depth isn't what you really want, but it should work
    ok.

  • Problem with embeding the same view in dynamically created view container

    Hello Experts,
                  I am getiing a dump when i try to embed the same view inside the dynamically created view container of
    dynamically created tabs of a tabstrip
    The requirement go like this, i have 2 views in which i have have to embed the 2nd view to view1 where i have an empty
    tabstrip without tabs. During runtime i create tabs as well as view containers accordingly and then try to embed view2 in tabs.
    I have put the below mentioned code in HANDLEIN,
      DATA: lref_vcntlr  TYPE REF TO if_wd_view_controller,
            lref_comp    TYPE REF TO if_wd_component_usage,
            lv_embed_pos TYPE string.
      lref_vcntlr = wd_this->wd_get_api( ).
      lv_embed_pos = 'FILE_PERS_EDIT/VC_GENERAL'.
      TRY.
          CALL METHOD lref_vcntlr->do_dynamic_navigation
            EXPORTING
              source_window_name        = 'FILE_PERSISTENCE_WND'          " Window
              source_vusage_name        = 'FILE_PERS_EDIT_USAGE_1'       " Source View usage
              source_plug_name          = 'TO_EDIT_LAYOUT'                       " Outbound plug
              target_view_name          = 'PERS_EDIT_LAYOUT'                  " Second view to be embedded
              target_plug_name          = 'IN'                                                  " Second view inboun plug
              target_embedding_position = lv_embed_pos
            RECEIVING
              component_usage           = lref_comp.
        CATCH cx_wd_runtime_repository .
      ENDTRY.
      wd_this->fire_to_edit_layout_plg( ).
    This works fine for the first time.
    However onaction tab select i change the embeding position( 'FILE_PERS_EDIT/view container name of different tab') of the view2 an try to embed view2 in a different tab.
    At this point i get a dump stating View2 already present in the window 'FILE_PERSISTENCE_WND' of component.
    I think, the view2 embediing has to be removed before i add the view2 in a different tab
    Kindly let me know how to remove view2 embedding from tab1 before i add a view2 to a different tab or is there any other
    means to handle this problem?
    Thanks & Best Regards,
    Srini.

    Hello Srini,
    I found a solution to your problem, because I had a similar task.
    In WDDOINIT I changed the method do_dynamic_navigation to if_wd_navigation_services_new~prepare_dynamic_navigation:
    DATA:
        l_view_controller_api TYPE REF TO if_wd_view_controller.
      l_view_controller_api = wd_this->wd_get_api( ).
      TRY.
          CALL METHOD l_view_controller_api->if_wd_navigation_services_new~prepare_dynamic_navigation
            EXPORTING
              source_window_name        = 'WDW_MAIN'
              source_vusage_name        = 'VW_SUB_USAGE_1'
              source_plug_name          = 'TO_VW_CONTENT'
              target_component_name     = 'ZTEST_DYNAMIC'
              target_view_name          = 'VW_CONTENT'
              target_plug_name          = 'DEFAULT'
              target_embedding_position = 'VW_MAIN/VC_TAB.VW_SUB/TAB1_VC'
            RECEIVING
              repository_handle         = wd_this->g_rep_handle.
        CATCH cx_wd_runtime_repository .
      ENDTRY.
      wd_this->fire_to_vw_content_plg( param1 = 'TAB1' ).
    In the action I first deleted the navigation targets, then navigated to the empty-view and last I called my target view:
      DATA:
        lv_position           TYPE string,
        l_view_controller_api TYPE REF TO if_wd_view_controller,
        lr_view_usage         TYPE REF TO if_wd_rr_view_usage,
        lr_view_***_t         TYPE wdrr_vca_objects,
        lr_view_***           LIKE LINE OF lr_view_***_t.
      l_view_controller_api = wd_this->wd_get_api( ).
      lr_view_usage = wd_this->g_view->get_view_usage( ).
      lr_view_usage->delete_all_navigation_targets( plug_name = 'TO_VW_CONTENT' ).
      CLEAR lv_position.
      CONCATENATE 'VW_MAIN/VC_TAB.VW_SUB/' old_tab '_VC' INTO lv_position.
      TRY.
          l_view_controller_api->if_wd_navigation_services_new~do_dynamic_navigation(
          source_window_name = 'WDW_MAIN'
          source_vusage_name = 'VW_SUB_USAGE_1'
          source_plug_name   = 'TO_EMPTYVIEW'
          target_component_name = 'ZTEST_DYNAMIC'
          target_view_name   = 'EMPTYVIEW'
          target_plug_name   = 'DEFAULT'
          target_embedding_position = lv_position ).
        CATCH cx_wd_runtime_repository.
      ENDTRY.
      CLEAR lv_position.
      CONCATENATE 'VW_MAIN/VC_TAB.VW_SUB/' tab '_VC' INTO lv_position.
      TRY.
          wd_this->g_rep_handle = l_view_controller_api->if_wd_navigation_services_new~prepare_dynamic_navigation(
            source_window_name = 'WDW_MAIN'
            source_vusage_name = 'VW_SUB_USAGE_1'
            source_plug_name   = 'TO_VW_CONTENT'
            target_component_name = 'ZTEST_DYNAMIC'
            target_view_name   = 'VW_CONTENT'
            target_plug_name   = 'DEFAULT'
            target_embedding_position = lv_position ).
        CATCH cx_wd_runtime_repository.
      ENDTRY.
      wd_this->fire_to_vw_content_plg( param1 = tab ).
    Ann.: I my example, I had 3 views: VW_MAIN which embedds VW_SUB. VW_SUB has the tabs in it and VW_SUB embedds VW_CONTENT.
    BR,
    Roland

  • How to get a dynamically created symbol to delete itself on click?

    Here's the setup...
    I want to have a dynamically created symbol appear upon click of a hotspot. In this case, you click on a pulsating hotspot and a popup box appears.
    Here's the code I'm using for that.
    //Create an instance element of a symbol as a child of the given parent element
    var mySymbolObject = sym.createChildSymbol("gardern_toxins_popup","stage");
    So we have the symbol "garden_toxins_popup" from my library placed dynamically on the page. I would like to assign an action to the pop-up itself that allows you to remove the symbol from the stage upon click.
    I feel silly for not being able to figure this out. I tried iterations of this bit of code...
    //Get the stage from the composition level, get the symbol
    sym.getComposition().getStage().getSymbol("garden_toxins_popup").delete();
    ...but it doesn't work.
    So I tried thinking like I was back in Flash and tried the following...
    this.parent.removeChild(this);
    But no joy on that as well. Is there something I haven't addressed in this logic or am I going about it in the wrong way? Thanks!

    Hi, chirpieguy-
    You'll want to use the deleteSymbol() API.
    http://www.adobe.com/devnet-docs/edgeanimate/api/current/index.html
    BTW, you should use the capitalized "Stage" to add it to the Stage - the lower case stage has a special meaning with Animate and might not give you what you want..
    sym.createChildSymbol("gardentoxins", "Stage");
    In the symbol itself, create a click event on a container div, then:
    sym.deleteSymbol();
    That being said, you don't need to dynamically create and delete an object.  What you can do is to use hide() and show() on an element and use the coordinates of your click to change the CSS value of top/left of this object so that you don't have to do the object management I highlighted above.
    Hope that points you in the right direction.
    -Elaine

  • How to add a table (dynamic created) into a model attribute

    i have dynamically created an internal table. Generally i use model-binding in a stateful MVC-Application.
    Is there a possibiltity to transfer the dynamic table to a model. As far as i know generic attributes are not allowed in the modell class.
    Every hint welcome
    thx in advance

    By some miracle I do have this finally working.  I will warn you up front that the code is not the cleanest (I have stuff copied in from all over the place.  I probably have lots of unused variable references - but I am running out of time to clean it up further).  Also I don't have all the logic to support all your different possible dynamic structure types.  I always use SFLIGHT as my dyanmic structure.  Therefore you will have to adapt the coding to lookup the actual structure type in use.
    So I have a model that has an structure ITAB type ref to data.  In my Model initialization I go ahead and dynamically redfine this to my specific type:
    METHOD init.
      SELECT SINGLE * FROM sflight INTO CORRESPONDING FIELDS OF isflight.
      DATA: struct_type TYPE REF TO cl_abap_structdescr,
        tabletype TYPE REF TO cl_abap_tabledescr.
      struct_type ?= cl_abap_structdescr=>describe_by_name( 'SFLIGHT' ).
      CREATE DATA me->itab TYPE HANDLE struct_type.
    ENDMETHOD.
    Then in my View I have the following:
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <%@extension name="phtmlb" prefix="phtmlb" %>
    <%@extension name="bsp" prefix="bsp" %>
    <htmlb:content design="design2003" >
      <htmlb:page title=" " >
        <htmlb:form>
          <phtmlb:matrix width="100%" >
            <%
      field-symbols: <wa> type any.
      assign model->itab->* to <wa>.
    *  append initial line to <wa_itab> assigning <Wa>.
      data: descriptor type ref to CL_ABAP_STRUCTDESCR.
      descriptor ?= CL_ABAP_STRUCTDESCR=>describe_by_data( <wa> ).
      data: flddescr type DDFIELDS.
      flddescr = descriptor->GET_DDIC_FIELD_LIST( ).
      field-symbols: <wa_field> like line of flddescr.
      data: label type ref to cl_htmlb_label.
      data: input type ref to CL_HTMLB_INPUTFIELD.
      data: binding_string type string.
      "Loop through each field in the structure Definition
      loop at flddescr assigning <Wa_field>.
      clear label.
      clear input.
      concatenate '//model/itab.'
      <wa_field>-FIELDNAME
      into binding_string.
      label ?= cl_htmlb_label=>factory( _for = binding_string ).
      input ?= cl_htmlb_inputfield=>factory( _value = binding_string ).
            %>
            <phtmlb:matrixCell row    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= label %>" />
            <phtmlb:matrixCell col    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= input %>" />
            <%
      endloop.
            %>
          </phtmlb:matrix>
         <htmlb:button  id="Test" onClick="Test" text="Submit"/>
        </htmlb:form>
      </htmlb:page>
    The key to making this work are custom getter/setters.  In your model class, you can copy from the template methods (Like GETM_S_XYZ for the metadata structure method).  Copy them and remove the _ on the front of the name.  Then change XYZ to the name of the attribute you are binding for.  The following are my custom methods. 
    method get_m_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * method is supposed to return either info about a specific component
    * of a structure (component is not initial -> return ref to
    * if_bsp_metadata_simple) or the complete structure
    * (component is initial -> return ref to if_bsp_metadata_struct)
      data: l_attribute_ref type ref to data,
               l_attr_ref  type ref to data,
               l_exception     type ref to cx_root,
               l_ex            type ref to cx_sy_conversion_error,
               l_ex_bsp        type ref to cx_bsp_conversion_exception,
               l_ex2           type ref to cx_bsp_t100_exception,
               l_type          type i,
               l_index         type i,
               l_name          type string,
               l_component     type string,
               l_getter        type string.
      data: l_field_ref     type ref to data,
            l_dfies_wa      type dfies,
            rtti            type ref to cl_abap_elemdescr.
      data: crap type string,
              rest type string,
              t_index(10) type c.
      split attribute_path at '[' into crap rest.
      split rest           at ']' into t_index crap.
    ****Dummy Object to avoid dumps
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
      data: l_dataref type string.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      rtti ?= cl_abap_typedescr=>describe_by_data_ref( field ).
      l_dfies_wa = rtti->get_ddic_field( ).
      clear metadata.
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
    endmethod.
    method get_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * get the given value of the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  value = <l_comp>.
      data: l_attr_ref  type ref to data,
              l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
    call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign l_field_ref->* to <o_data>.
      assign field->*       to <n_data>.
      move <o_data> to <n_data>.
    * call conversion routine
      try.
          value = if_bsp_model_util~convert_to_string(
            data_ref           = field
            attribute_path     = attribute_path
            no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
    endmethod.
    method set_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * assign the given value to the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  <l_comp> = value.
      data: l_attr_ref  type ref to data,
               l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex_bsp        type ref to cx_bsp_conversion_exception,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign field->*       to <n_data>.
      move <l_comp> to <n_data>.
    * call conversion routine
      try.
          if_bsp_model_util~convert_from_string(
                               data_ref           = field
                               value              = value
                               attribute_path     = attribute_path
                               use_bsp_exceptions = abap_true
                               no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_conversion_exception into l_ex_bsp.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex_bsp
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
      if <n_data> is initial.
        clear <l_comp>.
      else.
        move <n_data> to <l_comp>.
      endif.
    endmethod.
    I know that is a LOT of nasty code without too much explanation.  I'm afriad there isn't time right now to expand on how it works too much.  Between my day job and trying to finish the BSP book, there just isn't much time left.  Like I said before there is a very large section in the book on this topic that hopefully explains it.  The book will be out in December or early January - but perhaps I will get some time before then to write up something on SDN about this.

  • To delete this dynamically created symbol

    Hello,
    I dynamically created  a symbol :
    var vid = sym.createChildSymbol("video_holder", "Stage");
    vid.getSymbolElement().html("<iframe src='//player.vimeo.com/video/44150607' width='500' height='281' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>");
    vid.getSymbolElement().css({"margin":"auto", "top":"100px"});
    the I want another button to remove that Symbol from Stage :
    vid.deleteSymbol(); or sym.getSymbol("video_holder").deleteSymbol();
    How to do it ?
    thanks forever !
    s.

    1) About sym.getComposition().getSymbols().
    It returns an array. So you have to browse it.
    2) About vid.
    This is the same name but two different variables.
    Because they are only available within their own code panel.
    To go further, see: http://learn.jquery.com/javascript-101/
    You have to read: "scope" and "closures".
    PS : je viens de voir que la vidéo est en français. Vous parlez français ?

  • Dynamically create varying number of buttons

    Hi.
    The website I'm currently working on has an object gallery.
    Whenever the user clicks one of the objects, it zooms in and
    displays a sub-gallery with other images of said object. The images
    that make up these galleries are loaded into dynamically created
    empty MovieClips inside a sub-gallery MovieClip. Each object has a
    varying number of images and they're loaded and unloaded when the
    zooming in/out of the object ends.
    When you click one of the sub-gallery images, the main image
    should change and display the clicked image. However, I'm having
    trouble telling the MovieClips containing the sub-gallery images to
    do anything when they're clicked. See attached code, please.
    I'm guessing this has to do with the onRelease being declared
    inside the onMotionFinished. The thing is I can't thing of a way to
    declare the onRelease for every sub-gallery image before they're
    loaded.
    Thanks in advance.

    Frank,
    Thank you for the response.
    On the page2 of the pdf link you provided there is a picture of the tree table and it shows the hierarchy of the first level(or root) parent (President, Steven King). If the data had n presidents (n first or root level ) then this will dispaly all data in the same tree table like
    King
    --Kochhar
    ----Greenberge
    King 2
    --report 1
    ----report 1.1
    King n
    --report n
    ----report n.1
    My requirement is pretty close to this but slighly different where these n first level should appear in n different tree tables like below:
    Treetable for: King
    King
    --Kochhar
    ----Greenberge
    Treetable for: King 2
    King 2
    --report 1
    ----report 1.1
    Treetable for: King n
    King n
    --report n
    ----report n.1
    That is the reason why I am playing with af:forEach and also have a separate VO which returns all the presidents(first level parents) and view linked that to EmployeesVO so that the AM looks like
    AllPresidentsVO
    -----EmployeesVO (with the view criteria wihch returns the first level parents)
    ---------reportingManagers
    forEach prints n instances for PresidentsVO King, King2.. King n but all these instances have the same children the tree for King (tree for King2 ... King n does not appear)
    May be it should be achieved in a different way?

  • Passing variables from a dynamically created textinput in AS2?

    Hey everyone,
    I have a contact form in my flash file with name/email/message fields which a user can fill out and then click send, which passes these to a php script which then emails the information that they entered. This works fine when the text inputs are manually placed on the stage and all the information is passed to the php script and emailed to me. I am just updating it so the textinputs are created via AS2 so that I can style them more easily etc. This is fine however when created via script they no longer get passed to my php file. I am creating the textinput using the following code (which works fine):
    var my_fmt:TextFormat = new TextFormat();
    my_fmt.bold = false;
    my_fmt.font = "Arial";
    my_fmt.color = inputcol;
    contact_form.createTextField("contact_name", getNextHighestDepth(),112.6, 27, 174, 20);
    contact_form.contact_name.wordWrap = true;
    contact_form.contact_name.multiline = false;
    contact_form.contact_name.border = true;
    contact_form.contact_name.borderColor = inputcol;
    contact_form.contact_name.type = "input";
    contact_form.contact_name.setNewTextFormat(my_fmt);
    contact_form.contact_name.text = "";
    FYI I am creating this outside the movieclip containing the form (called contact_form) and then adding it into that mc specifically because I thought this may be necessary as doing it within the mc itself (using this.createTextField....) didn't work, however both seem to have the same effect.
    I am then doing various checks on the input box contents (to make sure it's not empty etc), this also works fine and gives me the relevant error if it is empty so it's accessing it correctly. I then use the following code to submit the variables and check_status checks the success/failure of the php script and alerts the user accordingly:
    loadVariables("http://www.makeaportfolio.com/send_email.php?flashmo=" + random(1000), this, "POST");
    message_status.text = "sending....";
    var interval_id = setInterval(check_status, 400);
    This works fine however does not pick up the value of the dynamically created text input (however does pick up all the text inputs that are manually added to the stage). I am rather confused as to why it's not picking this up and am not sure how I set it to do so, i would be immensely grateful if someone could point me in the right direction?
    Thanks so much for your help as ever,
    Dave

    Hi kglad,
    I'm sorry but i still don't understand what you mean? They are all text inputs which are defined in AS2 (you can see the code in my first post), the values (inputtext.text) are surely set by the user when they enter information into the input boxes. Accessing these works fine within my flash file, they just don't get passed to my php file. I got round this by manually creating duplicate textinputs on the stage for each dynamically created textinput which are all hidden, then assigning the values of the dynamically created inputs to the manually created inputs before loading the php file. This works fine as it picks up the manually placed inputs as local. I assume it's something to do with the scope of the dynamically created inputs but I cannot work out how you would ensure they would be picked up as even when you explicitly create them within the relevant mc it doesn't pick them up. As I say i've managed to get it working in a rather convoluted way which is good but would be most interested to understand why the other method doesn't work.
    Thanks so much for your help,
    Dave

  • Dynamically Create Repeater Element in ActionScript

    Hi,
    I'm trying to dynamically create a repeater control with an
    image and a label control. I can do it directly in the MXML file
    but when I try and covert it into ActionScript it's not working.
    Can anyone see what the problem is with my code?
    public function GetPalettes():void{
    removeChild(document.FrontPage);
    Palettes.method = "GET";
    params = {"method": "GetPalettes", "BodyPartNo":
    document.PalettesMenu.selectedItem.@partNo};
    Palettes.cancel();
    Palettes.send(params);
    var VerticalBox:VBox = new VBox();
    VerticalBox.x = 10;
    VerticalBox.y = 10;
    VerticalBox.id = "VerticalBox";
    var PaletteRepeater:Repeater = new Repeater();
    PaletteRepeater.dataProvider =
    "{Palettes.lastResult.Palette}";
    PaletteRepeater.startingIndex = 0;
    PaletteRepeater.id = "PaletteRepeater";
    var PaletteImage:Image = new Image();
    PaletteImage.setStyle("HorizontalAlign", "left");
    PaletteImage.source = "
    http://localhost/Flex/Personalised%20Palettes-debug/{PaletteRepeater.currentItem.@PictureS rc}Med.png";
    PaletteImage.useHandCursor = true;
    PaletteImage.buttonMode = true;
    PaletteImage.mouseChildren = false;
    PaletteImage.id = "PaletteImage";
    var PaletteDescription:Label = new Label();
    PaletteDescription.text =
    "{PaletteRepeater.currentItem.@Description}";
    PaletteDescription.id = "PaletteDescription";
    document.MainPage.addChild(VerticalBox);
    VerticalBox.addChild(PaletteRepeater);
    PaletteRepeater.addChild(PaletteImage);
    PaletteRepeater.addChild(PaletteDescription);
    Thanks

    "katychapman85" <[email protected]> wrote in
    message
    news:[email protected]...
    > Hey Amy,
    >
    > I've put a thread up about this but thought I'd ask you
    as well as you've
    > been
    > a great help to me so far.
    >
    > I have this function:
    > public function GetOptions(Menu:int):void{
    > document.MenuOptions.url =
    > "
    http://localhost/Flex/Personalised%20Palettes-debug/MenuOptions.php?Menu=";
    > document.MenuOptions.url += Menu;
    > document.MenuOptions.send();
    > }
    >
    > What I'm trying to do is when a user clicks on a Radio
    button this
    > function is
    > called and the number of the Menu required is sent to
    the function.
    >
    > I've added this Event Listener to my Radio Button:
    >
    >
    document.RadioButtons2.addEventListener(MouseEvent.CLICK,
    > function():void{GetOptions(2);});
    >
    > However, it's not working. Everything I've read suggests
    using an
    > anonymous
    > function in the Event Listener to pass the menu
    parameter but for some
    > reason
    > it's not working.
    What version of Flex are you using? The Help for Flex 3 has
    this to say:
    http://www.adobe.com/livedocs/flex/3/html/help.html?content=events_05.html
    Defining event listeners inline
    The simplest method of defining event handlers in Flex
    applications is to
    point to a handler function in the component's MXML tag. To
    do this, you add
    any of the component's events as a tag attribute followed by
    an ActionScript
    statement or function call.
    You add an event handler inline using the following syntax:
    <mx:tag_name event_name="handler_function"/>
    For example, to listen for a Button control's click event,
    you add a
    statement in the <mx:Button> tag's click attribute. If
    you add a function,
    you define that function in an ActionScript block. The
    following example
    defines the submitForm() function as the handler for the
    Button control's
    click event:
    <mx:Script><![CDATA[
    function submitForm():void {
    // Do something.
    ]]></mx:Script>
    <mx:Button label="Submit" click="submitForm();"/>
    Event handlers can include any valid ActionScript code,
    including code that
    calls global functions or sets a component property to the
    return value. The
    following example calls the trace() global function:
    <mx:Button label="Get Ver" click="trace('The button was
    clicked');"/>
    There is one special parameter that you can pass in an inline
    event handler
    definition: the event parameter. If you add the event keyword
    as a
    parameter, Flex passes the Event object and inside the
    handler function, you
    can then access all the properties of the Event object.
    The following example passes the Event object to the
    submitForm() handler
    function and specifies it as type MouseEvent:
    <?xml version="1.0"?>
    <!-- events/MouseEventHandler.mxml -->
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml">
    <mx:Script><![CDATA[
    import mx.controls.Alert;
    private function myEventHandler(event:MouseEvent):void {
    // Do something with the MouseEvent object.
    Alert.show("An event of type '" + event.type + "'
    occurred.");
    ]]></mx:Script>
    <mx:Button id="b1" label="Click Me"
    click="myEventHandler(event)"/>
    </mx:Application>
    It is best practice to include the event keyword when you
    define all inline
    event listeners and to specify the most stringent Event
    object type in the
    resulting listener function (for example, specify MouseEvent
    instead of
    Event).
    You can use the Event object to access a reference to the
    target object (the
    object that dispatched the event), the type of event (for
    example, click),
    or other relevant properties, such as the row number and
    value in a
    list-based control. You can also use the Event object to
    access methods and
    properties of the target component, or the component that
    dispatched the
    event.
    Although you will most often pass the entire Event object to
    an event
    listener, you can just pass individual properties, as the
    following example
    shows:
    <?xml version="1.0"?>
    <!-- events/PropertyHandler.mxml -->
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml">
    <mx:Script><![CDATA[
    import mx.controls.Alert;
    private function myEventHandler(s:String):void {
    Alert.show("Current Target: " + s);
    ]]></mx:Script>
    <mx:Button id="b1" label="Click Me"
    click="myEventHandler(event.currentTarget.id)"/>
    </mx:Application>
    Registering an event listener inline provides less
    flexibility than using
    the addEventListener() method to register event listeners.
    The drawbacks are
    that you cannot set the useCapture or priority properties on
    the Event
    object and that you cannot remove the listener once you add
    it.
    don't see anything in there about anonymous functions...?

  • Trouble accessing a property of an instance inside a dynamically created MC.

    I’m dynamically creating an instance of a movieclip, call it a game piece. This game piece has 4 frames, each with a movieclip called “base” (although one is red, one blue, one green, one yellow). When the game piece is created I set the frame to indicate player color. I’m also changing the alpha of “base” to 1.0 when it’s being dragged, 0.5 when it’s dropped.
    Using the following code, everything works fine if the game piece color is set to the base in frame 1 (red). If the game piece is created and the timeline moved to a frame other than 1, I throw an error when trying to access base.alpha (this would be the second, third, and fourth instances of base in the game piece timeline). Here’s the strange part, this is only a problem when the game piece is first created and added to the display list. Once created, even after the error has been thrown, I can access the alpha of bases 2, 3, and 4 in the drag start/stop listeners. Here’s a link to the work in progress, and the relevant sections of code (shortened for brevity, t1 is the top left piece on the pallet, others just repeat the same code):
    http://www.appliedcd.com/stormbringergrey/cw/CW_Combat_Sim.html
    var gUnitArray:Array = new Array();
    function initUnitPallet():void {
         t1.addEventListener(MouseEvent.MOUSE_DOWN,popNewUnit);
         // other pieces the same as above
         clanSelect.addEventListener(Event.CHANGE,changeClan);
    function popNewUnit(e:MouseEvent):void {
         var isBase:String = e.target.name;
         var unitType:String = e.target.parent.name;
         if (isBase=="base") {
              var classRef:Class = getDefinitionByName(unitType + "master") as Class;
              var newUnit:MovieClip = new classRef();
              gUnitArray.push(newUnit);
              var newUnitIndex:uint = gUnitArray.length-1;
              this.addChild(gUnitArray[newUnitIndex]);
              gUnitArray[newUnitIndex].gotoAndPlay(clanSelect.selectedItem.data);
              // the following line is a problem if the above gotoAndPlay is anything other than frame 1
              gUnitArray[newUnitIndex].base.alpha = 1.0;
              gUnitArray[newUnitIndex].x = e.stageX;
              gUnitArray[newUnitIndex].y = e.stageY;
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_DOWN,startUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_UP,stopUnitDrag);
              gUnitArray[newUnitIndex].startDrag();
    function startUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 1.0;
         e.currentTarget.startDrag();
    function stopUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 0.5;
         e.currentTarget.stopDrag();
    function changeClan(e:Event):void {
         var myClanColor:String = e.target.selectedItem.data
         t1.gotoAndPlay(myClanColor);
         // other pieces the same as above

    Thanks, pointed me in the right direction. I tried implementing a RENDER listener (see commented code below), and it worked, but unreliably. In my case the RENDER event fired before the entire frame was instantiated in about 1 out of 10 tries. I found a bunch of old posts (2007 or so) implying the RENDER event is buggy in Flash at best (apparently it has a better history in Flex). I couldn’t find more recent posts indicating better behavior, but I was unable to eliminate the residual errors in my project.
    Fortunately, while reading I was reminded of the EXIT_FRAME event which seems to work perfectly (but forces me to player 10, not a big deal). Final code below along with proper Z-order control.
    (BTW: I really miss the old forum's code box)
    function initUnitPallet():void {
         t1.addEventListener(MouseEvent.MOUSE_DOWN,popNewUnit);
         clanSelect.addEventListener(Event.CHANGE,changeClan);
    function changeClan(e:Event):void {
         var myClanColor:String = e.target.selectedItem.data
         t1.gotoAndPlay(myClanColor);
    function popNewUnit(e:MouseEvent):void {
         var isBase:String = e.target.name;
         var unitType:String = e.currentTarget.name;
         if (isBase=="base") {
              var classRef:Class = getDefinitionByName(unitType + "master") as Class;
              var newUnit:MovieClip = new classRef();
              gUnitArray.push(newUnit);
              var newUnitIndex:uint = gUnitArray.length-1;
              this.addChild(gUnitArray[newUnitIndex]);
              gUnitArray[newUnitIndex].gotoAndPlay(clanSelect.selectedItem.data);
              gUnitArray[newUnitIndex].x = e.stageX;
              gUnitArray[newUnitIndex].y = e.stageY;
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_DOWN,startUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_UP,stopUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(Event.EXIT_FRAME,renderUnit);
              // gUnitArray[newUnitIndex].addEventListener(Event.RENDER,renderUnit);
              // stage.invalidate();
              gUnitArray[newUnitIndex].startDrag();
    function renderUnit(e:Event):void {
         e.currentTarget.removeEventListener(Event.EXIT_FRAME,renderUnit);
         // e.currentTarget.removeEventListener(Event.RENDER,renderUnit);
         e.currentTarget.base.alpha = 1.0;
    function startUnitDrag(e:MouseEvent):void {
         if(this.numChildren > 1){
              e.currentTarget.parent.setChildIndex(e.currentTarget,this.numChildren-1);
         e.currentTarget.base.alpha = 1.0;
         e.currentTarget.startDrag();
    function stopUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 0.5;
         e.currentTarget.stopDrag();

Maybe you are looking for

  • Adapter Monitoring with CCMS

    Hi, is there anybody who already set up an adapter monitoring  with CCMS using the alert framework of Runtime Workbench ? Background: When using the existing MTE's in CCMS (J2EE Monitor Templates - All Systems - <SID> - J2EE Applications - SAP XI Ada

  • How to Open Portal Content by navigating Content Admin ?

    Hi All, I have developed WD Component and like to integrate the same with Netweaver Portal. How Do I achieve this. I am a beginner to EP Development. In one of the document, it says " Open the Portal Content Studio by navigating to Content Adminstrat

  • HERE DRIVE + update! Drive app removed for Croatia...

    Today I installed the HERE DRIVE + update that came out. When I started the app it crashed on launch all the time after the update. I decided to uninstall the app and reinstall it from the store. And now I can't even download the app any more! I'm us

  • Images open up behind my palettes --upper left in Monitor

    I open images in PHotoshop and they come up in upper left of monitor behind palettes. Often I can't even see it's there. Anyway to have Photoshop open the image in the center of the monitor?

  • Selecting multiple items by choosing first and last to include all those in between...

    Hello all. I'm familiar with how to select multiple items by using the shift key and the command key to select either individual items, or a batch of items by clicking the first to be included and the last to be included, and having all those inbetwe