Toolkit for CreateJS: How to control the main timeline from outside the canvas.
Hey Everyone,
I'm currently trying to do something simple, but my animation breaks whenever I attempt to change my code. I have created a basic animation in Flash where an object moves from the left side of the canvas, to the right, and then loops from the last frame to the first frame. Nothing else. The animation is simply put on the main timeline. I exported the animation with Toolkit for CreateJS through Flash's extension and the animation runs as it should. I am trying to start and stop (restarting from the first frame) the animation with mouse over and mouse off events. I want the events to fire when moused over/off a div OUTSIDE the animation's canvas tag. Is this possible with CreateJS? I'm trying to figure out how to control the main timeline without being inside the canvas tag.
Example HTML:
http://www.thephotoncore.com/testing/example_test.html
Example Code:
<section id="container">
<canvas id="canvas" width="550" height="400" style="background-color:#cccccc"></canvas>
<section id="animation_control">
<p>Roll over to start and stop animation.</p>
</section>
</section>
Thanks again for the help!
-DJ
Hi DjPhantasy5,
All movieclips on the stage are children of the stage,
So on the "mouseover" all movieclips on the stage could be stopped with stop and on the "mouseout" all children could be restarted with gotoAndPlay like this:
function Stop()
if (stage && stage.children)
var i, l = stage.children.length;
for (i = 0; i < l; i++)
var child = stage.children[i];
if ("stop" in child)
child.stop();
function Restart()
if (stage && stage.children)
var i, l = stage.children.length;
for (i = 0; i < l; i++)
var child = stage.children[i];
if ("gotoAndPlay" in child)
child.gotoAndPlay(0);
See http://www.liauw.nl/forums/adobe/djfantasy5/index.html
But it is also possible to expose "ball1", for example, by adding it to the document.
This can be done by adding code to "ball1" like so:
/* js
document.ball1 = this;
Then the stopping of the animation would look like:
function Stop()
if ("ball1" in document)
document.ball1.stop();
etc.
Have fun!
Ronald
Similar Messages
-
How to control the main timeline from within a symbol?
I have a small world map as a symbol called "verden" and I want the user to click Europe, Asia, or Africa and jump to named labels in the main timeline.
http://www.dagbladet.no/grafikk/neshorn/neshorn.html
On the main timeline a have the label "intro" with a Stop action and the label "europa". At label "europa" I have a symbol also called "europa" which has a display of None at label "intro" and On at the label "europa".
The animation never goes to label "europa"
I have this code on europa in the symbol "verden" :
// insert code for mouse click here
sym.getComposition().getStage().getSymbol("europa").play("europa");
The files are on Dropbox here
Update, now it works:
sym.getComposition().getStage().play("europa");Hi Bill,
There are plenty of threads on here about scope, but here's one way to create a global variable:
// code on Stage.compositionReady
sym.myGlobalVar = 1;
Then, anywhere in your project, you can check/set that var like so:
sym.getComposition().getStage().myGlobalVar = 2;
And here's one way to create a global function:
// code on Stage.compositionReady
sym.myGlobalFunction = function(){
console.log('myGlobalFunction');
Then, anywhere in your project, you can call that function like so:
sym.getComposition().getStage().myGlobalFunction(); -
Controlling a Movie Clip on the Main Timeline from a loaded SWF?
Is it possible to control a MovieClip on the main timelne from another loaded clip?
I see posts that control loaded clips, but most are all from the loader in the main timeline. I have a moviclip on the main timeline that I want to make visible or invisible depending on what keyframe is playing in another loaded swf.
If I try to call the movieClip from the loaded SWF I get "error #1119. Access of possibly undefined property...." because it doesn't exist in the loaded SWF, just the main timeline.
The old AS2 way just used "_root". Since "_root" doesn't exist any more, how do you control items on the main TimeLine from a loaded SWF?I am not clear what you mean because you are saying you are trying to target a movieclip that does not exist where you are trying to target it.
Try using a trace to see what you are targeting when you you target the MovieClip(parent.parent)....
trace(MovieClip(parent.parent));
The other approach I mentioned earlier is the more OOP-correct approach if you would rather try that way. Here's a rough outline of it...
AS3 - Dispatch Event
http://forums.adobe.com/thread/470135?tstart=120
Example:
Add something to trigger the event in the child (your loaded swf):
dispatchEvent(new Event("eventTriggered")); (
if dispatchEvent problem, see: http://www.kirupa.com/forum/showthread.php?p=1899603#post1899603)
In your loading/parent swf, listen for the complete event on the Loader.contentLoaderInfo. In the complete event handler, add a listener for the event on the loaded swf.
// event handler triggered when external swf is loaded
function loaderCompleteHandler(event:Event) {
MovieClip(event.currentTarget.content).addEventListener("eventTriggered", eventHandler);
function eventHandler(event:Event):void {
trace("event dispatched in loaded swf");
// this is where your main file can set the visible property of your movieclip -
How do I set a variable on the main timeline from within a symbol?
Just getting started with Animate and coming to it from Flash, as may be apparent from my question. How do you set a variable to the main timeline from within a symbol?
I have 24 pairs of clickable elements, each in their own symbols, and all 24 of those symbols sit inside another symbol. I want all 24 to be able to set the same global variable when clicked. I can't find that this question is addressed anywhere, which makes me think I may be stuck in a Flash mindset and approaching the task in the wrong way. (There are however MANY discussions of how to address objects at different levels in the hierarchy. That's well covered.)
Relatedly, how do you access a function on the main timeline from within a symbol?
Adobe should consider putting together a support page (or pages) just for folks migrating form Flash. In the materials I've encountered so far there seems to be a studied effort to refrain from mentioning Flash in any way. I imagine there are a lot of people out there like me who have a deep background in Flash coding, but are just getting started with Animate. We don't need help with most of the basic concepts, but we may still have some pretty basic questions about how to accomplish some things in Animate because our Flash knowledge is getting in the way.Hi Bill,
There are plenty of threads on here about scope, but here's one way to create a global variable:
// code on Stage.compositionReady
sym.myGlobalVar = 1;
Then, anywhere in your project, you can check/set that var like so:
sym.getComposition().getStage().myGlobalVar = 2;
And here's one way to create a global function:
// code on Stage.compositionReady
sym.myGlobalFunction = function(){
console.log('myGlobalFunction');
Then, anywhere in your project, you can call that function like so:
sym.getComposition().getStage().myGlobalFunction(); -
How can I buy subtitled movies from outside the US?
how can I buy subtitled movies from outside the US?
People here are users, you need to contact Apple Inc. by phone and see if you can resolve this problem.
http://support.apple.com/kb/he57 -
How do I recerence Movie Clips on the Main Timeline from inside a class?
Hey everyone, this might be a stupid question but I thought
I'd ask cause it's making me nuts. I'm all of 2 days into AS3
(coming from not using Flash at all in YEARS) so feel free to
consider me ignorant. I do have plenty of application development
experience in other areas though.
I can't seem to create a class that can reference an instance
of a movie clip on my main timeline. I'd post code of what I've
tried but I've gone through so many desperate edits & wild
guesses that it was just garbled junk before I deleted it all.
Basically here's how I figured Flash could work, though maybe
it doesn't work this way at all.
I'm assuming that with AS 3 being so big on being a true
object oriented environment, I wouldn't need to mix my code and
interface together. Preferably I'd be using the Flash authoring
tools just to design my interface. Create a button... place it
somewhere... give it an instance name. Roughly the equivilant of
Apple's InterfaceBuilder for those of you that might be familiar
with Cocoa development. I can see maybe having to put a few lines
of ActionScript onto frame 1 (though really I'm hoping Flash would
have a better method of kicking off the application at this point
that using code tied to frames) to load my classes & such, but
after that I'd like all of my code to be held in external class
files.
So maybe I've got:
Interface.fla - My interface
Button_1
Button_2
TextField_1
Main.as - My main controller class using to handle all of my
applications behavior
SomeClass.as - Some helper Class
SomeOtherClass.as - Some helper Class
Main.as would have instructions in its initialization method
to go ahead & attach events to buttons & initialize
anything else that needs to happen when the application starts.
From there on it would all be objects communicating back &
forth. Button_1 would get clicked with would fire
Main.someMethod(). Main.someMethod() would then do it's thing and
set the value of TextField_1. All very clean & code is very
separated from interface.
Unfortunately I can't for the life of me figure out how AS3
classes reference each other like that. There doesn't seem to be
any kind of a global 'root' or '_root' I can use to locate any
movie clips on the stage. I've searched the help & the web for
any kind of simple tutorial but to no avail. My job has tasked me
with building a flash app for a project but I'd really rather not
have a tone of ActionScript just shoved into frame 1. That just
seems... ugh! (::shudder::)
Can someone maybe point me in the right direction here? I'm
really willing to do my homework but I can't seem to locate the
info I need to get started. Also, is there an ActionScript IRC
channel or something maybe?
Thanks,
CliffI worked with the problem last night and the solution I
started coming to involved creating my own custom document class
based off which extends MovieClip. My thought is that way I have
access to the initialization routine of the timeline itself and
that all of the elements on the main timeline should be
"properties" of my custom class.
Is this correct? Is there a down side to doing this & if
so what is it & why?
Also, just for my reference, the last time I did anything
with ActionScript I think I was using '_root' to target the main
timeline. WHat are the global variable names in AS 3? Is it just
'root' & 'stage' or 'Root' & 'Stage' or what? -
Referencing the main timeline from elsewhere
From inside a movie clip (button) which is inside a display
object (buttonSet), I want to gotoAndPlay a specific frame on the
main timeline. I've tried stage.gotoAndPlay(thisFrame). I got
closer with gotoAndPlay(stage.thisFrame). I still have something
wrong.
I have about 15 frames on the main timeline. Each frame
contains a myriad of objects all doing different things. Most
importantly they transition from frame to frame based on the
current frame (last button clicked) and the next frame (the newly
clicked button).
Example: the last button that was clicked was button #4, the
button I have just clicked is button #2. Based on this knowledge, I
want the main timeline to gotoAndPlay frame #6.
Thanks for the aid. :)the flash compiler (in strict mode) often has trouble
"remembering" the class-type of objects/variables. "typing" those
objects explicitly helps the compiler to overcome erroneous error
messages. -
Load a MC on the main timeline from a MC. AS3
I have a movie clip (mc_menu) on that is on the main timeline.
This movie clip has buttons that I want to use to display other movie clips on the main (parent) timeline.Start here:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9 b90204-7e4e.html -
How to fire a schema trigger from outside the schema
A user is using an ad hoc tool similar to SQL Developer called PeopleSoft Application Designer.
He creates a connection to the db, then issues an alter session set current_schema = 'restricted_schema'. The connected user does not have direct privileges on the "restricted_schema" which they call SYSADM.
After changing the schema context in that manner he creates objects in SYSADM. A schema trigger is then fired and grants privileges on the new objects created in SYSADM. Doing the same in either SQL Plus or SQL Developer does not fire the schema trigger.
I think SQL Plus and SQL Dev are working as they should. Altering the session like that does not change your identity - just the schema context. But, when you examine v_$session, the connection with this other tool looks exactly the same as one from SQL Plus or SQL Dev when changing the schema context in the session.
Instead of trying to figure out what this other tool is doing, is there any way for that schema trigger to fire when using this process from one of our tools?>
A user is using an ad hoc tool similar to SQL Developer called PeopleSoft Application Designer.
He creates a connection to the db, then issues an alter session set current_schema = 'restricted_schema'. The connected user does not have direct privileges on the "restricted_schema" which they call SYSADM.
After changing the schema context in that manner he creates objects in SYSADM. A schema trigger is then fired and grants privileges on the new objects created in SYSADM. Doing the same in either SQL Plus or SQL Developer does not fire the schema trigger.
>
The user CANNOT create objects in any schema without the proper privileges.
Setting the current_schema parameter does not confer ANY additional privileges to a user. See ALTER SESSION in the SQL language doc
http://docs.oracle.com/cd/E14072_01/server.112/e10592/statements_2013.htm
>
CURRENT_SCHEMA
Syntax:
CURRENT_SCHEMA = schema
The CURRENT_SCHEMA parameter changes the current schema of the session to the specified schema. Subsequent unqualified references to schema objects during the session will resolve to objects in the specified schema. The setting persists for the duration of the session or until you issue another ALTER SESSION SET CURRENT_SCHEMA statement.
This setting offers a convenient way to perform operations on objects in a schema other than that of the current user without having to qualify the objects with the schema name. This setting changes the current schema, but it does not change the session user or the current user, nor does it give the session user any additional system or object privileges for the session.
>
If the user connects and sets SYSADM as the current schema and creates objects in SYSADM the user already had privileges to create objects in the SYSADM schema; setting the current schema has nothing to do with it.
So your issue is that the user has privileges to create objects in the SYSADM schema; you need to revoke those privilges (or the role that grants them) to solve your problem. -
Moving the play head in the main timeline from a button in a movie clip
I have a movie clip that loads and when it is done playing it has a close button that unloads the movie clip... I want to add code to this button that moves the play head to frame 20 of my main timline using actionScript 3.0
Tried that but dose not work think its because I am loading the movie this way...
Play button "playFinal"
function lastQuestion(event:MouseEvent):void{
var Info:final1 = new(final1);
this.stage.addChild(Info);
Info.x=511
Info.y=340; }
So I tried using the Name "Info"
//example...... MovieClip(Info.root).gotoAndStop(20);
And I tried the name of the clip in the library "final1"
//example...... MovieClip(final1.root).gotoAndStop(20);
Is it because im loading it with actions script instead of having it on the timeline? -
The new version of Toolkit for CreateJS version 1.2.0311 is integrated now with the Flash Pro CC app. You can see this under Windows->ToolKit for CreateJS.
Using Flash Pro 'Toolkit for CreateJs' -http://www.adobe.com/devnet/createjs/articles/using-flash-pro-toolkit-createjs.html
Getting Started - http://www.adobe.com/devnet/createjs/articles/getting-started.html
The Toolkit for CreateJS 1.2 release extends support for converting Buttons to HTML5,motion guides,animated masks,scaleMode along with fixes to several JSX related errors and omission of multiple empty keyframes. -
FLV/Mp3 Cue Points for Accessing Frame Labels on the Main Timeline in Flash 8
Hello,
In Flash MX2004, creating cue points for syncing locations on
flv and mp3 files to locations on the main timeline included:
1) Dragging a media component onto the stage
2) Entering file path, frame label name, and time code
information in the component inspector
3) Creating the frame label names on the main timeline, and
4) Enabling the Media Labeled Frame Cue Point Navigation
Behavior
Flash 8 documentation details a considerably different
process of creating cue points. While it discusses how to create
cue points in the flv, I have not been able to locate how to enable
linking locations in flv and mp3 files with frame labels on the man
timeline. It appears that there would need to be ActionScript
necessary to accomplish this that is not available in the docs.
Please advise what ActionScript/process would enable this
function.
Thank you!
James
[email protected]I usually start off solving problems with the livedocs, as I
recommend for anyone. The following link will take you to the
NetStream.onCuePoint handler. This is what you need.
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context= LiveDocs_Parts&file=00002561.html
You can have this code on the main timeline. When the
cuepoint is hit, it will invoke this event handler and inside is
where your gotoAndPlay( ) should go.
Your other question about the text will get activated by the
same handler. Just have a conditional statement (if, switch, etc.)
to differentiate between the two events. The text itself can be
mask inside a movieclip.
Does this help? -
Apparent cumulative error bug in Toolkit for CreateJS exporter.
Hello,
All the text in the .fla, , is one object, . When exported with Toolkit for CreateJS, there seems to be some error accumulating over the bits of text until some become quite far off from their original mark: .
I don't see this problem with simpler fla's of the same format, but it becomes apparent with one that's this large. I could e-mail the generated .fla, but I'm not allowed to share it in a public forum.I ran some tests and this is what is causing your layout problems (probably)
Internally Flash stores positions to a 0.05 pixel accuracy.
But when exported to javascript via JSFL you end up with only 0.1 pixel accuracy.
This is script that randomly places textfields on stage:
import flash.text.TextField;
for (var i:int=1;i<1000;i++){
var tf:TextField=new TextField();
tf.x = Math.random()*stage.stageWidth;
tf.y = Math.random()*stage.stageHeight;
tf.text = "tf"+i;
addChild(tf);
trace("tf.x:"+tf.x+"/tf.y:"+tf.y);
in the output you see that flash actually "rounds" the positions to 0.05 pixel accuracy whereas javascript rounds that value even once more (to a .1 accuracy).
This might be the loss you are feeling gets accumulated. -
How to remove a function on the main timeline within a movie clip
How do you remove a function that is coded on a frame in the main timeline from within a movie clip? I tried this, but no dice:
infoGraphicDisparity.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);
function fl_ClickToGoToScene(event:MouseEvent):void
parent.removeEventListener (Event.ENTER_FRAME, parent["enterFrameHandler"]);
MovieClip(this.root).gotoAndPlay("disparity");
this is the event I am trying to remove:
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
any help would be appreciated as always.
Thanks!from any frame (that executes after enterFrameHandler is defined) in any display object in the display list
stage.removeEventListener(Event.ENTER_FRAME, MovieClip(root).enterFrameHandler); -
Using cue points to trigger events on the main timeline...
Hi--
I have successfully placed an flv (video) file (progressive
download) on the main timeline of my movie with controls to play
and pause (Flash 8 Professional). So far, so good!
NOW TWO PROBLEMS: Does anyone know how to set it up so that
when a specific cue point is reached in the video, it triggers an
action on the main timeline? In this case, once the video is over,
I want the main timeline to gotoAndPlay frame 3. Specific script to
do this would be great!
The other action I'd like to happen is that when the video
begins, it targets a scrolling text mc ("text") in the main
timeline and tells it to gotoAndPlay frame 2.
Any advice would be GREATLY appreciated!!! Many
thanks!!!I usually start off solving problems with the livedocs, as I
recommend for anyone. The following link will take you to the
NetStream.onCuePoint handler. This is what you need.
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context= LiveDocs_Parts&file=00002561.html
You can have this code on the main timeline. When the
cuepoint is hit, it will invoke this event handler and inside is
where your gotoAndPlay( ) should go.
Your other question about the text will get activated by the
same handler. Just have a conditional statement (if, switch, etc.)
to differentiate between the two events. The text itself can be
mask inside a movieclip.
Does this help?
Maybe you are looking for
-
I changed my apple id email address last week, not a problem I just entered the correct info on my 6 apple devices for FaceTime, AppStore and iTunes. The issue now, is that I have changed my appleid password so that the kids couldn't install any app
-
My database does not start automatically
i am using windows 2000 server and oracle 9.0.1, my database does not start automatically when i am booting the system. in regedit autostart is there, my service is getting started automatically and i used startmode auto in my oradim command but stil
-
How to find duplicate colums in a table?
i have a table product_info with a data in the following format. product_id catalog_id product_info_id aaaa bbbb xyz dddd cccc rrr aaaa bbbb kkk ffff gggg ttt dddd cccc eee now when i select the table i want to display only the duplicate records for
-
Create Branch Based on Parameter
Hi: I need to create a workflow process that branches based on a parameter value passed into the process. Can anyone suggest how I can do this? Basically I want to call different notifications based on the in-coming parameter. Thanks!
-
I need to connect to the internet at my school. IT is a 802.1x connection and it work work it worked with TIGER please tell me why and how to fix it.