Edge Animate CC :: How To Get Symbol To Follow The Mouse
Feb 28, 2013
I have a crosshair like in a lightgun style game at an arcade. What code would I use to have the symbol follow the mouse, and if at all possible, could the symbol's origin be in the middle of the symbol and not in top left corner of the symbol?
I am trying to create an instance of a symbol at the mouse location when i click - anywhere on stage. I think it should be something like the following:
//stage on.click function
// Create an instance element of a symbol as a child of the // given parent element //premade code: var mySymbolObject = sym.createChildSymbol("Symbol_1", "ParentElement1"); var mySymbolObject = sym.createChildSymbol("Symbol_1", "Mouse");
This doesn't work of course because the mouse isn't a symbol.
I followed the tutorial on this page: [URL]. However, my animation auto plays and mousing over has no effect. I have searched and sreached to no understandable (to me) avail. Here's a link to the file: [URL]
Is there a way to "eval" or dynamically set a symbol name that has been parsed from XML to build a symbol path? For example, I'm trying to dynamically set a variable to the path of a sysmbol already on the stage, but it's not working correctly:
var xmlSymName = $('symName', this).text(); // where symName = "sym4" from a parsed XML node var whatPOI = sym.getComposition().getStage().getSymbol("sym1").getSymbol("sym2").getSymbol("sym3").getSymbol(xmlSymName).getSymbolElement();
Basically I have a lot of points on a map and I'd like to be able to name the points along with other data like tooltip callouts, etc populated via XML then loop through the XML to build the points of interest on the map. If I can get the above working I can place that variable path reference into an array and grab the data from it later. But the path is not working the way I have it.
The scenario is this, I have a symbol(TitlePage) on my main timeline. Inside the symbol(TitlePage) there is a play button. How can i set a click event on this symbol that access the main timeline(stage) labels?
play "SYMBOL_2" - "DIV_ANIMATION_1" - "ANIMATION_1_START" from within "SYMBOL1" - "DIV_PLAY" with the mouseup command
URL....I know that i can sym.getComposition().getStage().getSymbol("div_animation_1").play(); from within "div_play" but how do i access a point on the timeline and play from there...
function myFunc(name) { var $symbol = sym.$(name); //I want to do something with $symbol depending on their id, for example //$item.appendTo($symbol); //so $item will append to the corresponding symbol }
[Code]...
I tried .attr('id') and it seems not the id I want.
EDIT: indeed I want to get the selector inside myFunc
In my Composition there some cases I have to play one symbol. In a few cases it is necessary two play sequential e.g. symbol A an then symbol B. It have to look like one animation. Is there an easy way of calling?
I start with several items on the stage, each an iteration of the same symbol. When I click on one, it performs an opening animation, then pauses. When I click on another, the first symbol un-pauses on its timeline, animating back to original position, while the second one I clicked plays its opening animation till its pause. Each of the symbols can tell the already deployed symbol to "play itself off."I'm sure this was done in Flash all the time, and there's a Javascript solution.
I'm having a problem with IF ELSE code use with a mouse click. What I want each time a user "clicks" i want to execute a particular block of code, up to 3 clicks, then nothing. I've tried local and global click counter var but can't seem to get past the first "if". This is what I have now (I'm using console.log() to keep track.
In comp ready i create a global var ...
// insert code to be run when the composition is fully loaded heresym.getComposition().getStage().setVariable('clickcnt', 1); //set counter to 1 var i = sym.getComposition().getStage().getVariable('clickcnt'); console.log ("Counter is starting at "+i);
on the stage i create a "click" event..
// insert code for mouse click herevar i = (sym.getComposition().getStage().getVariable('clickcnt'); if (i=1){ console.log("counter is = "+i); //do some code sym.getComposition().getStage().setVariable('clickcnt', 2); //set counter to 2 } else if (i=2){ console.log("counter is = "+i); //do some code sym.getComposition().getStage().setVariable('clickcnt', 3); //set counter to 3 } else if (i=3){ console.log("counter is = "+i); //do some code sym.getComposition().getStage().setVariable('clickcnt', 4); //set counter to 4 taking it out of range sym.play(100); //play the timeline animation } else { //
I'm using this to negate any further clicks. I'm sure there's a proper way to do this. I just don't know it. sym.stop(1000); console.log("end"); };I When I run this It never gets passed the first if, It's like the "clickcnt" var is not getting updated or read properly.
How to create two instances of the same symbol and change the texts and images inside the instances to have different texts (so I mean different from the other instance)?
Somehow, instead of using dynamic creation by using code, I can't manage this. Everytime I change a text inside A (instance of symbol1), the text of B (instance of the same symbol1) is also changed. The same with images. I can't figure out what I'm doing wrong here. I can't imagine symbols are always reference types, 'cause what's the meaning of having symbols then?
I have a symbol called "A." I needed 2 copies of it, so I duplicated A and renamed the new symbol to B. I now have A and B, identical copies of each other.
I navigated inside symbol A where I entered another symbol, "A1." Inside A > A1, I removed an image and added another image. No problem so far.
Then, I returned to the stage and navigated into symbol B > B1. To my surprise, the same image change I made in A > A1 already appeared in B > B1 (even though I duplicated A **before** making this change).
When I change the image inside B > B1, that same change is now present back in A > A1.
It's as if these two symbols, A and B, are mirrors of each other, even after being modified. Trouble is, I don't want mirrors. I need them to be slightly different.
I thought the Duplicate step might be my problem. I started over (both by undoing several steps and by closing and creating a new document entirely). This time, I copied A and pasted it onto the stage. I ran into the same problems.
Ok, next guess: this time, I entered symbol A and copied its elements/sub-symbols. I went back to the stage and pasted them there. Selected these elements/symbols and converted to a new symbol. Same problem!
When I try to add a click event on a symbol, I can't access to the symbol, only to the parent. For example, if on the event click on a specific symbol A I add the code
var symbolElement = sym.getSymbolElement(); symbolElement.hide();
It will hide the parent of A, instead of hiding A. How do I access to A?
I have a keyframe where I must to upload a random series of symbols, and I do it with the script:
var myVar = Math.floor((Math.random()*6)+1); var stage = sym.$("Stage"); var myAni = sym.createChildSymbol("Symbol_" + myVar, "stage"); myAni.appendTo(stage);
The script works fine, but, at NEXT keyframe I must load another series. The problem is that the symbol loaded in the previous keyframe is still present and the new symbol overlaps it.How can I unload or discard the previous symbol?
I'm simply trying to animate the y axis of a symbol with code. When I rollover one symbol, I'd like it to move the symbol it's inside a certain distance. Never seems to work. I've tried looking up the simple jquery syntax to change an image's y position, but it's hard to find!
I'm building an animated menu in the latest version of Adobe Animate. There are 5 different animations that happen within the same box on the main stage. I have made each animation it's own symbol. I want to trigger the animations from text boxes to the left of the box where the main animation takes place. The text boxes are not apart of any of the symbols, but are just on the main stage.
When someone scrolls over any of the individual text boxes i need to play one symbol's timeline AND hide all of the other symbols from the stage.
How do I reference `this` when a symbol is clicked? I have a click event on 'alien' on the stage. In the handler, sym appears to be stage and not 'this'.
I want it to play itself (amoung other things) when clicked.
e.target gets me the element, but not the edge symbol so I can play itself.
I have several animations converted to symbols and I want the composition to call one at random on load. These will be page header animations and my intension is use the same composition on each page that pulls an animated header at random when the page loads. I've done this with Flash using Actionscript but not sure how to code it out in Edge.
I have facing some problem in symbol. i;e In a symbol have created three rectangular boxes (rect-1, rect-2 & rect-3)& in main-time line there is three lavel (label 1, label 2 & label 3).
i want to create functionality that is, when i click rect-1 box, i should be play "label 1", when i click rect-2, it should play "label 2" & when i click rect-3 it shuld play "label 3".
I've migrated across various platforms over the years but Edge is definitely a tool I will use as a core authoring tool. Keep the updates coming!
Ok I've read about 8 articles on this forum on Youtube videos and stopping sound using the
sym.$("blah").empty();
BUT, once I've emptied the container, I want to be able to access it again and play the symbol. I don't know how to load the container once it's been emptied. I tried
sym.$("blah").empty().append (youtube);
but doesnt work.
I just need the video to load again from the beginning, I dont need youtube API integration for remembering where it stopped, I just want to reload the symbol "blah" after its been emptied.
Check out the work in progress...
Page 1 - had no video
Page 2 - has video bg, ignore that, the two videos behind the slider have no empty commands and keep playing in background
Page 3 - on the page that says 'Nadi', behind teh slider is the video that has the empty and I just want to reload it after its been closed
I have this animated menu, when I click one of the buttons the animation to show some information starts, but when I move the mouse, the animation goes straight to the beginning so i can't continue intercting with it, that shouldn't happen, what do you think it is?
i need to control the timeline animation with the mouse wheel.i've tried this code but I've could only make it work with mouse move, unfortunatly the scroll does not work -
So I have an interactive piece with several shapes. There are about 5 rectangles, 3 horizontal and 2 vertical. For aesthetics and to fit them all in the space (stage), they overlap slightly. Whenever you mouseover a single rectangle it pushes the other rectangles away and a text bubble appears. When you mouseout, the text box goes away and the rectangles return to their original position. This worked without glitches when I applied it to the first rectangle. Now that I'm applying this to all of the other rectangles, I'm running into trouble. I'm thinking the trouble is with the overlapping portion. If you hover one rectangle where it overlaps another rectangle for a split second it plays the correct animation but then I think it tries to also play the animation for the other overlapping rectangle that appears underneath.
So my question is, what is the best way to remedy this problem? On mouseover can I temporaily disable mouse events for the other rectangles once one has been triggered? And then maybe re-enable them on mouseout? Is there a way for the rectangle that is visually on top to be the one that recieves the mouseover event?