Moving symbol instances with actionscript
I'm just looking for a primer of sorts... I want a symbol to
slide around on the stage when various buttons are clicked.
I know how to set new _x and _y values for it, but that will
just make the instance jump across the stage. I want it to slide -
even ease out of the slide as it ends it's motion... I know this
can be done, but have no idea where to start looking in regards to
"how".
Thanks for you help - which can come in the form of a
tutorial, tips, snippets of code, etc.
later - Chris
Well Sim-Enzo is almost correct. You will have some problems
though because it is not really complete.
When you want to do things over time (move, fade, scale,
etc.) with actionscript you have two main choices –
onEnterFrame and setInterval. For the example given by Sim-Enzo I
would rewrite it like this:
myImageClip.onEnterFrlame=function(){
if(this._y>-100){
this._y-=10;
}else{
delete this.onEnterFrame;
this._y=-100
Here are why I would make these changes.
First the onEnterFrame is poorly named and confuses a lot of
folks. So remember onEnterFrame means "do this next bit of code at
the frame rate of the movie – even if the timeline is stopped
or there is only one frame."
Next. Each movie clip instance can only have one onEnterFrame
handler defined for it. So it is a good idea to assign each one to
an appropriate clip to avoid problems. By attaching this one to the
clip you want to move, myImageClip, you will also be able to assign
other ones to other clips and do whatever they need to do.
Then inside the event handler, notice how I refer to the clip
by "this" since the onEnterFrame is scoped to the myImageClip.
Finally, and this is probably most important, I have added an
else to the conditional. This makes sure that once your clip has
move to where it is supposed to go that the onEnterFrame is
stopped. Otherwise the onEnterFrame would just keep going –
it wouldn't move the clip anymore, but it would be using up
processor time. One errant onEnterFrame like this wouldn't probably
bring down your swf, but if you didn't do it with many different
ones you would notice.
I also added a little bit there which put the clip exactly at
the place I wanted. There are times in Flash where rounding errors
or other issues can make for surprises. I think it is good practice
to set the value to the exact required value.
Similar Messages
-
Moving an image with actionscript
I'm trying to move an image from position Y:0 to Y:-100 using
actionscript when the .swf file loads, as this is smoother than
conventional tweening??Well Sim-Enzo is almost correct. You will have some problems
though because it is not really complete.
When you want to do things over time (move, fade, scale,
etc.) with actionscript you have two main choices –
onEnterFrame and setInterval. For the example given by Sim-Enzo I
would rewrite it like this:
myImageClip.onEnterFrlame=function(){
if(this._y>-100){
this._y-=10;
}else{
delete this.onEnterFrame;
this._y=-100
Here are why I would make these changes.
First the onEnterFrame is poorly named and confuses a lot of
folks. So remember onEnterFrame means "do this next bit of code at
the frame rate of the movie – even if the timeline is stopped
or there is only one frame."
Next. Each movie clip instance can only have one onEnterFrame
handler defined for it. So it is a good idea to assign each one to
an appropriate clip to avoid problems. By attaching this one to the
clip you want to move, myImageClip, you will also be able to assign
other ones to other clips and do whatever they need to do.
Then inside the event handler, notice how I refer to the clip
by "this" since the onEnterFrame is scoped to the myImageClip.
Finally, and this is probably most important, I have added an
else to the conditional. This makes sure that once your clip has
move to where it is supposed to go that the onEnterFrame is
stopped. Otherwise the onEnterFrame would just keep going –
it wouldn't move the clip anymore, but it would be using up
processor time. One errant onEnterFrame like this wouldn't probably
bring down your swf, but if you didn't do it with many different
ones you would notice.
I also added a little bit there which put the clip exactly at
the place I wanted. There are times in Flash where rounding errors
or other issues can make for surprises. I think it is good practice
to set the value to the exact required value. -
Moving movie clips with ActionScript
I am trying to move four movie clips with actionscript in a
circler motion with two buttons, one to rotate the mc’s to
the left and one button to rotate the mc’s to the right. Here
is a link to what I am trying to do;
http://www.us.playstation.com/Lair/
and it is undrer game features.Yes, that's what the code I gave you is intended to do....
you replace that code with whatever action you need to take to turn
your movie around.
I have no idea what your movieclip is doing, but I'm guessing
by your response that if it was an arrow pointing left to right
(just an example), you want it to be pointing right to left when
the left arrow is pressed. If you want an immediate turn around,
then the simplest way to do that is to have another frame
containing the movieclip that it moves to where it faces the other
direction--and to have it appear turned around, from the toolbar
you select Modify -> Transform -> Flip Horizontal.
So the movieclip would live inside another movieclip that has
two frames with stop()'s for each frame. In the first frame you
would have the subclip facing left to right, and in the second you
would have it facing right to left. If we call that 2-framed
movieclip "walker", the code I provided before would
become... -
Symbols: Instance Vector Contents Should Be Snap-able
As per this discussion thread:
http://forums.adobe.com/message/2600619#2600619
Vector art (i.e. paths and nodes) within an instance should be able to snap to other objects and to guides.
Requested on the basis that any vector that can be seen must be able to be accurately positioned.
Thank you,
HfThat's what a symbol is a link to an original. It is not an independent copy unless you break the link to the symbol.
So if you want them to be independent objects or art after you plc the instance break the link there is an icon at the bottom of the symbols panel for this purpose.
You can double click a symbol instance with the selection tool nd it will allow you to edit the symbols content but once you leave isolation mode all the symbols will change.
The way the alignment work is correct behavior as far as I can see. -
I am trying to write write a script for Adobe Illustrator (AS or JS) which takes a set of objects and one by one replaces them with a brush style applied to a single point (one anchor path) or a symbol instance. Needs to be accurate as it's a graph with 300 'points'.
Looking for help with the following tasks:
Selecting all the paths belonging to a particular layer named "Replace". (Even if User input to a dialogue is required I only know how to use layer item numbers)
How to get the central co-ordinates of a small path that makes a shape like a triangle, square, circle or diamond. Some of the sets are compound paths but they are all symmetrical but for the triangle and I want the centre (X,Y) to assign as properties for the Brush anchor point or Symbol anchor point.
How to change layers from one layer (containing the set of paths) to a new drawing layer (where script will create the symbols/brush instances)
What I'm also wondering:
Would it be best to iterate the sample set and get cords and draw create the new symbol instance (possibly in a new layer and possibly delete the originating path) one by one as it were? Or be best to run through all the points and create a data record of all the co-ordinates then iterate a second time and create all the objects using the co-ordinates for symbol (X,Y) anchor properties
All I have to work from is the sample Adobe Script that creates a tree symbol the duplicates it around the edges of the page. Not quite there yet :-)
One of the reasons I'm doing this is that I can then stretch the graph to expose the data and not have to transform each to get the shapes back into shape but mainly because some of the paths are very jaggy and ugly out of the stats program (Excel?!).
Sample File: link
Before is like this: After is like this:Jaggy like this
-
Can't access object using "id" or "name" if created with actionscript
How can you register an instance of an object with actionscript so that it's id or name value is accessible?
I included a simple example where a Button is created using mxml and in the same way it is created using actionscript. The actionscript object is inaccessible using it's "id" and "name" property.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="application1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler(event:FlexEvent):void
import spark.components.Button;
var asBtn:Button = new Button();
asBtn.label = "actionscript";
asBtn.x = 200;
asBtn.id = "asButton";
asBtn.name = "asButtonName";
addElement(asBtn);
trace("mxmlButton="+this["mxmlButton"].label); // returns: mxml label
//trace("mxmlButton="+this["asButton"].label); // returns runtime error: ReferenceError: Error #1069: Property asButton not found on TestId and there is no default value.
//trace("mxmlButton="+this["asButtonName"].label); // returns runtime error: ReferenceError: Error #1069: Property asButtonName not found on TestId and there is no default value.
]]>
</fx:Script>
<s:Button
id="mxmlButton"
label="mxml label"
alpha="0.8"/>
</s:Application>Hi Dan,
It is a very rare occurrence when I miss not being able to access an object (object property, really) using the ["name"] notation for objects created using actionscript.
In MXML the compiler is conveniently adding an attribute to the class with the same name as the id, so you can conveniently refer to it using the [] notation. While we explicitly specify an application container to use, the MXML compiler creates a custom container which is a derivative of the base container and to that it adds properties for the children declared in MXML. I guess it also effectively calls "addElement" for us when the container is being constructed.
Your example assumes that using "addElement" to add the button to the application container is the same as declaring a variable (ie property ). It isn't, so there's no point in looking for an property of the name "as3Button" using the [] notation, because it doesn't exist. The container is managing a collection of children in it's display list and that's not the same as being accessible as properties of the container.
Generally speaking, accessing properties using the ["name"] syntax isn't necessary.
Paul
[edit: you may wonder why "addElement" doesn't conveniently also add the "id" attribute to be an property of the container class. Unfortunately, it can't because the container class would need to be dynamic and it's not. A further complication would be that adding properties at runtime would invite naming clashes at runtime with associated mayhem. MXML can do this because the compiler generates the class and can trap name duplication at compile time.
Great question, BTW.
-last edit changed my "attributes" to be "properties" in line with Adobe's terminology] -
How can I use LCCS with ActionScript 3 and Flash CS4?
Hi,
Using Stratus I was able to create an an application using Action Script 3 and Flash CS4. The sample code on the Adobe site was quite straight forward and easy to understand. I now want to switch over to LCCS but can't find anything any where on how to use Action Script 3 and Flash CS4 with LCCS. Do I need to know Flex to be able to use LCCS? Everything was quite simple and easy to understand with Stratus and makes complete sense. But LCCS is really confusing. Is there any sample code on how to establish a connection in Action Script 3 and then stream from a webcam to a client. There is nothing in the LCCS SDK that covers Flash and Action Script 3. Please help! I found the link below on some forum but it takes me nowhere.
http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&catid=75 9&threadid=1407833&enterthread=yThanks Arun!
Date: Thu, 29 Apr 2010 11:44:10 -0600
From: [email protected]
To: [email protected]
Subject: How can I use LCCS with ActionScript 3 and Flash CS4?
Hi,
Welcome to the LCCS world.
Please refer to the SDK's sampleApps folder. There would be an app called FlashUserList. The app demonstrates how LCCS can be used with Flash CS4. Its a pretty basic app, but should help you moving.
We are trying to improve our efforts to help developers in understanding our samples. Please do let us know if we can add something that would help others.
Thanks
Arun
> -
Stop and Play All Child MovieClips in Flash with Actionscript 3.0
I am stuck with the ActionScript here. I have a very complex animated flash movie for eLearning. These contain around 10 to 15 frames. In each frame I am having multiple movie clip symbols. The animation has been created using a blend of scripting and also normal flash animation.
Now I want to create pause and play functionality for the entire movie. I was able to create the pause function but when i try to play the movie it behaves very strange.
I was able to develop the pause functionality by refering to the below mentioned links:
http://www.unfocus.com/2009/12/07/stop-all-child-movieclips-in-flash-with-actionscript-3-0 /
http://www.curiousfind.com/blog/174
Any help in this regard is highly appreciated as i am approaching a deadline.
I am pasting the code below:
import flash.display.MovieClip;
import flash.display.DisplayObjectContainer;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.transitions.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.Event;
import flash.events.MouseEvent;
stop();
// function to stop all movieclips
function stopAll(content:DisplayObjectContainer):void
if (content is MovieClip)
(content as MovieClip).stop();
if (content.numChildren)
var child:DisplayObjectContainer;
for (var i:int, n:int = content.numChildren; i < n; ++i)
if (content.getChildAt(i) is DisplayObjectContainer)
child = content.getChildAt(i) as DisplayObjectContainer;
if (child.numChildren)
stopAll(child);
else if (child is MovieClip)
(child as MovieClip).stop();
// function to play all movieclips
function playAll(content:DisplayObjectContainer):void
if (content is MovieClip)
var movieClip:MovieClip = content as MovieClip;
if (movieClip.currentFrame < movieClip.totalFrames) // if the main timeline has reached the end, don't play it
movieClip.gotoAndPlay(currentFrame);
if (content.numChildren)
var child:DisplayObjectContainer;
var n:int = content.numChildren;
for (var i:int = 0; i < n; i++)
if (content.getChildAt(i) is DisplayObjectContainer)
child = content.getChildAt(i) as DisplayObjectContainer;
if (child.numChildren)
playAll(child);
else if (child is MovieClip)
var childMovieClip:MovieClip = child as MovieClip;
if (childMovieClip.currentFrame < childMovieClip.totalFrames)
//childMovieClip.play();
childMovieClip.play();
function resetMovieClip(movieClip:MovieClip):MovieClip
var sourceClass:Class = movieClip.constructor;
var resetMovieClip:MovieClip = new sourceClass();
return resetMovieClip;
pauseBtn.addEventListener(MouseEvent.CLICK, onClickStop_1);
function onClickStop_1(evt:MouseEvent):void
MovieClip(root).stopAll(this);
myTimer.stop();
playBtn.addEventListener(MouseEvent.CLICK, onClickPlay_1);
function onClickPlay_1(evt:MouseEvent):void
MovieClip(root).playAll(this);
myTimer.start();
Other code which helps in animating the movie and other functionalities are as pasted below:
stage.addEventListener(Event.RESIZE, mascot);
function mascot():void {
// Defining variables
var mc1:MovieClip = this.mascotAni;
var sw:Number = stage.stageWidth;
var sh:Number = stage.stageHeight;
// resizing movieclip
mc1.width = sw/3;
mc1.height = sh/3;
// positioning mc
mc1.x = (stage.stageWidth/2)-(mc1.width/2);
mc1.y = (stage.stageHeight/2)-(mc1.height/2);
// keeps the mc1 proportional
mc1.scaleX <= mc1.scaleY ? (mc1.scaleX = mc1.scaleY) : (mc1.scaleY = mc1.scaleX);
stage.removeEventListener(Event.RESIZE, mascot);
mascot();
this.mascotAni.y = 100;
function mascotReset():void
// Defining variables
var mc1:MovieClip = this.mascotAni;
stage.removeEventListener(Event.RESIZE, mascot);
mc1.width = 113.45;
mc1.height = 153.85;
mc1.x = (stage.stageWidth/2)-(mc1.width/2);
mc1.y = (stage.stageHeight/2)-(mc1.height/2);
// keeps the mc1 proportional
mc1.scaleX <= mc1.scaleY ? (mc1.scaleX = mc1.scaleY) : (mc1.scaleY = mc1.scaleX);
var interval:int;
var myTimer:Timer;
// function to pause timeline
function pauseClips(secs:int, myClip:MovieClip):void
interval = secs;
myTimer = new Timer(interval*1000,0);
myTimer.addEventListener(TimerEvent.TIMER, goNextFrm);
myTimer.start();
function goNextFrm(evt:TimerEvent):void
myTimer.reset();
myClip.nextFrame();
myTimer.removeEventListener(TimerEvent.TIMER, goNextFrm);
// function to pause timeline on a particular label
function pauseClipsLabel(secs:int, myClip:MovieClip, myLabel:String):void
interval = secs;
myTimer = new Timer(interval*1000,0);
myTimer.addEventListener(TimerEvent.TIMER, goNextFrm);
myTimer.start();
function goNextFrm(evt:TimerEvent):void
myClip.gotoAndStop(myLabel);
myTimer.removeEventListener(TimerEvent.TIMER, goNextFrm);
MovieClip(root).pauseClips(4.5, this);
// function to fade clips
function fadeClips(target_mc:MovieClip, next_mc:MovieClip, from:Number, to:Number):void
var fadeTW:Tween = new Tween(target_mc, "alpha", Strong.easeInOut, from, to, 0.5, true);
fadeTW.addEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
function fadeFinish(evt:TweenEvent):void
next_mc.nextFrame();
fadeTW.removeEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
// function to fade clips with speed
function fadeClipsSpeed(target_mc:MovieClip, next_mc:MovieClip, from:Number, to:Number, speed:int):void
var fadeTW:Tween = new Tween(target_mc, "alpha", Strong.easeInOut, from, to, speed, true);
fadeTW.addEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
function fadeFinish(evt:TweenEvent):void
next_mc.nextFrame();
fadeTW.removeEventListener(TweenEvent.MOTION_FINISH, fadeFinish);
// function to show screen transitions
function screenFx(target_mc:MovieClip, next_mc:MovieClip):void
//var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
var tranFx:TransitionManager = new TransitionManager(target_mc);
tranFx.startTransition({type:Iris, direction:Transition.OUT, duration:1.2, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE});
tranFx.addEventListener("allTransitionsOutDone",doneTrans);
function doneTrans(evt:Event):void
next_mc.nextFrame();
tranFx.removeEventListener("allTransitionsOutDone",doneTrans);
// function to show screen transitions inverse
function screenFxInv(target_mc:MovieClip, next_mc:MovieClip):void
var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
var tranFx:TransitionManager = new TransitionManager(target_mc);
tranFx.startTransition({type:Iris, direction:Transition.IN, duration:2, easing:Strong.easeOut, startPoint:5, shape:Iris.SQUARE});
tranFx.addEventListener("allTransitionsInDone",doneTrans);
function doneTrans(evt:Event):void
next_mc.nextFrame();
tranFx.removeEventListener("allTransitionsInDone",doneTrans);
// function to zoom in
function zoomFx(target_mc:MovieClip):void
//var tweenTW:Tween = new Tween(target_mc,"alpha",Strong.easeInOut,0,1,1.2,true);
var tranFx:TransitionManager = new TransitionManager(target_mc);
tranFx.startTransition({type:Zoom, direction:Transition.IN, duration:3, easing:Strong.easeOut});
//tranFx.addEventListener("allTransitionsInDone",doneTrans);
/*function doneTrans(evt:Event):void
next_mc.nextFrame();
// Blinds Fx
function wipeFx(target_mc:MovieClip):void
var tranFx:TransitionManager = new TransitionManager(target_mc);
tranFx.startTransition({type:Wipe, direction:Transition.IN, duration:3, easing:Strong.easeOut, startPoint:9});
// Blinds Fx Center
function fadePixelFx(target_mc:MovieClip):void
var tranFx:TransitionManager = new TransitionManager(target_mc);
tranFx.startTransition({type:Fade, direction:Transition.IN, duration:1, easing:Strong.easeOut});
tranFx.startTransition({type:PixelDissolve, direction:Transition.IN, duration:1, easing:Strong.easeOut, xSections:100, ySections:100});This movie is an animated movie from the start to end. I mean to say that though it stops at certain keyframes in the timeline it stops for only a certain time and then moves on to the next animation sequence.
Its not an application where the user can interact.
On clicking the play button i want the movie to play normally as it was playing before. If the user has not clicked on the pause button it would anyhow play from start to finish.
Is there anyway where i could send in the fla file? -
I am trying to install WSUS role on Windows Server 2012 R2 using dedicated SQL Instance with static port on remote SQL Server 2012 SP1 CU7 on Windows Server 2012 R2.
It verifies the connection and then throws the error:
The request to add or remove features on the specified server failed. The operation cannot be completed, because the server you specified requires a restart.
WSUS Server : Windows Server 2012 R2
Remote SQL Server: 2012 SP1 CU7 hosted on Windows Server 2012 R2
Please let me know if anyone has experienced this issue.We were trying to install WSUS role on Windows Server 2012 R2 using dedicated SQL Instance with static port on remote SQL Server 2012 SP1 CU7 on Windows Server 2012 R2.
It verifies the connection and then throws the error:
The request to add or remove features on the specified server failed. The operation cannot be completed, because the server you specified requires a restart.
Same error even after rebooting the server multiple times.
WSUS Server : Windows Server Standard2012 R2
Remote SQL Server: Windows Server 2012 SP1 CU7 hosted on Windows Server 2012 R2
Event ID 7000:
The Windows Internal Database service failed to start due to the following error:
The service did not start due to a logon failure.
Event ID 7041
The MSSQL$MICROSOFT##WID service was unable to log on as NT SERVICE\MSSQL$MICROSOFT##WID with the currently configured password due to the following error:
Logon failure: the user has not been granted the requested logon type at this computer.
Service: MSSQL$MICROSOFT##WID
Domain and account: NT SERVICE\MSSQL$MICROSOFT##WID
This service account does not have the required user right "Log on as a service."
User Action
Assign "Log on as a service" to the service account on this computer. You can use Local Security Settings (Secpol.msc) to do this. If this computer is a node in a cluster, check that this user
right is assigned to the Cluster service account on all nodes in the cluster.
If you have already assigned this user right to the service account, and the user right appears to be removed, check with your domain administrator to find out if a Group Policy object associated
with this node might be removing the right.
I found following article:
"MSSQL$MICROSOFT##WID service was unable to log on as NT SERVICE\MSSQL$MICROSOFT##WID" error when you install WID in Windows Server 2012
http://support.microsoft.com/kb/2832204/en-us
To work around the issue, use one of the following methods:
Assign the Log on as a service user right to NT SERVICE\ALL SERVICES in the GPO that defines the user right.
Exclude the computer from the GPO that defines the user right.
We moved the SCCM server to OU where no policies were getting applied and then applied the new GPO to that OU. Restarted the server and we were able to install WSUS role.
Regards
PR -
Is there a way to transform multiple individual «symbol instances» into one «symbol set»?
I have an artboard filled with «symbol instances» which I'd like to transform into one single «symbol set», in order to use the «symbolism tools».
merdesigner,
Are you looking for something like dragging some symbols out and arrange them, then select all and crate a new Symbol out of them? -
In symbol instance's .click code, refer to self?
In the .click code of a symbol instance, how do I refer to self (the symbol instance)? Surely I don't have to give the name of myself; that would be redundant. I want non-coding colleagues to be able to replicate the symbol with no particular naming scheme and with no change in the code of each.
I have many instances on the stage. Each contains two div's and the second div contains an image called "checkmark_outlined2". I'm not using timelines, just setting properties in code.
Pseudo-code of what I want to do is simple:
when symbol instance receives a click
set the opacity of my image to 0 // only my image, not those of other instances of the same symbol
set my overall opacity to 0.5 // same here
If I understand right, sym in this context still refers to the stage rather than the symbol instanceDear bdggr
i looked your project and i saw you used a very complicated codes for very siimple actions !! and also that much complicating codes will need much more lines and will increasing the size of project ...
i recreate your project with very simple actions in just 15 Lines, Here is the link : http://www.mediafire.com/?8xbn8r5hted29ax
Some Notice :
1 - if you create a symbol in Edge, Do NOT Copy/Paste it, cause it will duplicate that symbol and you cant have access to it seperately, ad any changes to one of them would change all others
Solution : its better to recreate a new symbol again ( it just take very very very little space like a bit )
2 - if you using a eclipse inside a Symbol its better to create a Rectangle as Area ( thats what i did in the Project ) and change the opacity to 0, and this Rectangle will work as an mouse area, without it mouse over will find a problem and your action will not work as expect
if you had any problem, let me know, i will help you
Zaxist -
Problems editing a symbol instance
i'm trying to change the color of a graphic symbol instance, several times across the movie clip timeline. (the symbol is also rotating across the timeline.) for each keyframe, when i double-click on the graphic symbol, break apart and then change the color in the properties panel, then go back to the movieclip timeline, ALL the keyframes with that symbol has changed colors and not just the one instance on the keyframe that i'm on. i can't seem to figure this one out!
thanks for your help.here's what the "flash cs4 help" pdf says:
Break apart an instance symbol
To break the link between an instance and a symbol and make the instance into a collection of ungrouped shapes and lines, you break apart the instance. This feature is useful for changing the instance substantially without affecting any other instance. If you modify the source symbol after breaking apart the instance, the instance is not updated with the changes.
1Select the instance on the Stage.
2Select Modify > Break Apart. This action breaks the instance into its component graphic elements.
3To modify these elements, use the painting and drawing tools.
i can't break apart the symbol instance on the parent timeline, because "break apart" is greyed out. -
Creating Symbol Instances containing a dynamically set image - Help Needed
I'm working on a site prototype that has many rollover images in the navigation. Each image is unique, but the rollover and rollout code is identical. I'm trying to create a single symbol that can be used for all of the rollovers, but need some help figuring this out, as it will significantly speed up my work.
I think the pseudocode would work like this:
Create a symbol that contains a default rollover image.
In the symbol, add the rollover and rollout code. This adjusts transparency from 0 -> 100 and back.
Create instances of the symbol over each item in the nav.
For each instance, set a variable containing the name of the rollover image to be used.
In that symbol instance, get the variable value.
In that symbol instance, use the image name in the variable to replace the default image.
Question: How do I make step 4-6 work? I have 1-3 working smoothly.P.S. My last dev work was waaaaay back with Director, PHP and ColdFusion. I still get basic principles such as using functions, objects, instances, inheritance etc, but the language has changed. And I have very very little experience with the DOM.
Appendix: How I'm Doing This Manually
There's a background image of the nav showing all of the unselected states
Each item in the nav has a corresponding rollover image, in a series of elements layered on top of nav element. Each rollover has opacity initially set to 0%.
Each image element has rollover, rollout and click triggers. Rollover and rollout triggers are identical for each. There's also a little more code with rollout that provides a quick fade. This means lots of copying identical code. I hate to think about having to change any part of that code.
Thanks! ChassyHi there,
Perhaps a more simple solution would be to set up 1 global function that handles over/out states for all your buttons. On mouseenter/mouseleave of each button you would call this function to fade in/out your rollover graphic.
Example:
http://www.timjaramillo.com/code/edge/rollover4_multiple_btns
Source:
http://www.timjaramillo.com/code/edge/_source/rollover4_multiple_btns.zip
Code on Stage.compositionReady (note there are btn symbols called btn_1, btn_2, btn_3, and all have an over state called "over" in them):
var array_btns = ["btn_1", "btn_2", "btn_3"];// array to hold all your btns
function setup_btns()
// iterate through array_btns, add "mouseenter" and "mouseleave" for all
for (var i=0; i<array_btns.length; i++){
// hide "over" state initially
sym.getSymbol( array_btns[i] ).$("over").hide();
sym.$( array_btns[i] ).mouseenter({obj:array_btns[i]}, function(e){
var btn = e.data.obj;
sym.getSymbol(btn).$("over").fadeIn(500);// show "over" graphic
sym.$( array_btns[i] ).mouseleave({obj:array_btns[i]}, function(e){
var btn = e.data.obj;
sym.getSymbol(btn).$("over").fadeOut(200);// hide "over" graphic
setup_btns(); -
Understanding Symbol/Instance hierarchy relationships
Hello
I am looking for some insight into the symbol/instance
hierarchy.
First off what I have done simple enough is create a dynamic
text field and convert it to a symbol.
This symbol has an instance name of "symHeader".
I then dragged an instance of that symbol to the stage and
gave it an instance name of "instHeader".
I was having problems populating it with what seemed like a
logical approach:
symHeader.instHeader.text = "blabla";
with no luck.
In looking at the object list in debug, it occurred to me
that it should be:
instHeader.symHeader.text = "blabla".
This seems sort of backwards in the hierarchy of things.
I figured since instHeader was and instance of symHeader,
symHeader would be the first item listed, then drill down to
instHeader.
Can someone familiar with the symbol/instance hierarchy
explain why this is this way, maybe I need to look at this in a
different way.
Thanks
Scotty>> I then dragged an instance of that symbol to the
stage and gave it an
>> instance
name of "instHeader".
Then you just want to do: instHeader.text = "blabla";
The first name you gave it - symHeader is just the clips name
in the
library. When you actually take the clip from the library and
place it on
the stage - then you are creating an instance of that clip.
HTH
Dave -
Head Developer
www.blurredistinction.com
Adobe Community Expert
http://www.adobe.com/communities/experts/ -
Replace symbolic links with actual file
Hello everybody,
I have recently decided to move my seven iPhoto collections from an old external drive with insufficient capacity to a new bigger one. We talk some 50.000+ photos. Up to a couple of years ago, I had decided NOT to let iPhoto import the photos into its internal library, but I left the originals in a distinct directory external to the iPhoto package.
Moving the iPhoto packages from the old to the new disk, I ran into a problem with the links to this external directory once I had retired the old external drive … because all links to the external originals broke.
Here an example:
- The old drive is called MOBIL
- The new drive is called Photos
In the directory /Volumes/Photos/iPhoto Library 1999 - 2002/Masters/2000/ESRIN, I find a symbolic link named:
/Volumes/Photos/iPhoto Library 1999 - 2002/Masters/2000/ESRIN/DCP_0211.JPG
In a terminal session this file is: -rw-rw-rw-@ 1 js 0 29 Okt 2006 DCP_0211.JPG
The original is correctly reported as /Volumes/MOBIL/Eigene Bilder - Jurgen/Fotos/2000/09 September/ESRIN/DCP_0211.JPG
Of course, iPhoto does not find the original once I remove the volume MOBIL.
I see two possible solutions to this issue:
1. Replace the broken symbolic link /Volumes/MOBIL/... with the new one /Volumes/Photos
2. Replace the symbolic link with the actual file, i.e., copy each file from MOBIL to Photos (I don't care about the additional disk space used by this)
I'd prefer solution 2 but my UNIX knowledge is not sufficient to automate this task - we are talking hundreds of directories and thousands of files …
Any idea ho to achieve the above ? Any utility around ? Any other idea ?
Many thanks in advance - JurgenI believe that /Volumes normally contains a single symbolic link to the boot volume, and that all the other items there are not true symbolic links but are rather "mount points" which are managed dynamically by the system. Try running
ls -l /Volumes
in Terminal and you will see that all the items except for the boot volume show up as directories, and that only the boot volume item is a symbolic link. When you look at /Volumes in Finder (via Go To Folder) , the mount point icons have curved "alias" arrows and are labeled "alias", similar to symbolic links, but they are different entities.
With respect to the iPhoto paths, if you still have the old drive I think I would try cloning it to the new one so that the contents of the new drive are identical, disconnecting the old drive, and then renaming the new drive to match the name of the old drive. Then launch iPhoto and see if it finds everything.
Maybe you are looking for
-
Installing 620 SAP_BASIS Dialog Instance with 6.40 Installation Master CD
Greetings, At present we have a SAP R/3 Enterprise 47x200 which is dsitributed across two (windows 2003) clustered servers, one for the Central Instance and other for the Database (Oracle 9.2.0.5). Now and due to perfomance issues on the Central Inst
-
Why the full table scans in this query on a complex view?
Does someone have an idea of why the FTSs are in here? As I mentioned before, it seems to be using the indexes where I figured it would. I just don't see why it needs to FTS ALL tables involved in the view to put the combined result sets together. Th
-
Hi, I am currently doing the process above using a tool supplied by SAP. For example: Source SID = DEV Source DB = MSSQL 2000 Source OS = Windows 2000 Advan Server R/3 = 4.7, 640 Target System is as above but lets put the SID as QAS. By usin
-
Protection of in-house development
Hello all, within our project in-house developments are taking place. For this purpose we have registered in the Marketplace our own name space to protect these developments. Then these developments are then delivered to other local systems at VW gro
-
Compressor writing to OS drive
I have had this trouble with compressor 4.0 also. I just switched to AME instead until 4.1 thinking Apple would have fixed the big issues. Still same thing. I set my output to my external and watch it start writing at 1-3mb/s to my SSD OS drive. Also