How to _root in as3 (buttons in movie clip referencing to main timeline)
Hi, I created buttons within a movie clip that i placed in the main timeline.I am a novice to as3. I just wanted the button to go to the frame label of the main timeline. i used to do this with _root in the old flash. how do i do this?
thumb02_btn.addEventListener(MouseEvent.CLICK, buttonClicked);
function buttonClicked(event:MouseEvent):void
gotoAndPlay("slide2");
Thanks for the quick reply!
somehow i must be doing something wrong though. It's not working...
I added a stop to the "slide02" labeled section of the main timeline.
and I also added a stop to the beginning and end of the movieclip. Am I doing something wrong? attached is my file....thanks!!
stop();
thumb02_btn.addEventListener(MouseEvent.CLICK, buttonClicked);
function buttonClicked(event:MouseEvent):void
MovieClip(this.root).gotoAndPlay("slide2");
stop();
Similar Messages
-
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? -
Passing a variable from a movie clip to the main timeline
Hi,
I'm having trouble passing a variable from a movie clip in my
flash file to the main timeline.
I have a movieclip with the instance name IntroNav which
contains several buttons. Clicking a button sets the variable
"page" to a specific name, i.e. page = "home"
However, outside of the movie clip, on the main timeline I am
unable to call this variable, and "page" seems to have no value.
Can anyone tell me why this is and how to solve it?
ThanksUmm, yes ... declare your variables correctly.
var page:String = new String(); //proper complete
var page:String; //strict typing
var page:String = "home"; //stirct typing with value
declaration
Do not declare the variable in your buttons, you would have
to do so in every button and be constantly resetting the value.
Declare it on the main timeline at the lowest level. You do not
need to use it as a _global, you just need to resolve your path
issues. You can 'set' the variable value from a button, without any
problem, but you have to call to the variable correctly.
You do not 'name' a variable as "_root.page" , the '_root'
refers to the lowest level of the SWF or the main timeline, as does
a call to ' _level0' (that's a zero). If the variable is declared
on the main timeline, and you're calling from the MC/button or
anywhere you can refer to the variable by calling to it by
the proper path of '_root.page'
To set the variable from any of your button/MC instances
call:
_root.page = "value"; OR _level0.page = "value";
But you must have the varibale declared on the main timeline,
and only once and the playhead should be stopped or it will reset
the value to the default upon looping. -
Please help! first website! movie clip placed on main timeline wont play!
Hi! if any one could please help me it would be greatly
appreciated!
So im trying to make my first website in flash and ive ran
into a problem. I have the main movie, my main time line. I have a
few animations going on in this that were all created in that main
time line. those work fine. however, i created two new movie clips
(still inside the same .fla file) and animated them with thier own
time line. I then thought you could just drag and drop these movie
clips onto your main time line and they would play inside the
movie. but when i press ctrl + enter, the dont play!
here are some points of intrest.
my main movie (the main time line) is 130 frames.
the movie clips i made inside the same .fla file are between
400 and 600 frames.
i placed both new movie clips on the 130th frame in the time
line with their own layers.
also there is a layer for actions on the 130th that has
stop();
i thought that maybe the time line had to be as long as those
movie clips i created and so i extended it but they still didnt
play.
im thinking action script is involved? please help me im
getting pretty frustrated and im sure there is something simple to
achieve this.
here is a link where you can download the source files im
using. if you open the file the two movie clips i created are
called front two and front one and are layers with the same name.
this board wont let me fully post my link cause the last word
in it is s*h*i*t* so youll have to type it in your browser. its
http://public.me.com/matts*h*i*t*
(just remove the asterisks)
also i noticed that my file is huge. i used photoshop to
create everything and them imported it into flash. is there a way i
can reduce this size?
thank you sooo much! please help!
-MattHey Matt,
I'll take a look at your file, but as a general rule, a
movieclip's timeline plays automatically when it is first
instantiated. Instatiated means its first frame where "it exists"
on the timeline that contains it. So the layer that holds your
movieclip animation, needs to extend the length of the timeline you
want that movieclip to "exist". Other than that rule, the frames
don't NEED to match the frames inside said movieclip.
So, if movieclips play automatically, and yours isn't, there
must be something either stopping the movieclips timeline, or your
movieclip isn't existing on the timeline because the layer that
holds it, doesn't have keyframes the length you need it to.
Yeah optimizing your sprites (2d graphical elements), and
using vector when you need to (if you don't know the difference
between raster and vector, google it) will significantly lower your
outputted .swf file size.
Edit: After looking at your file, your movieclips are not
playing (well, they're technically playing, just not showing up)
because your masker layer has multiple objects on it. A masker
layer (not to be confused with the maskee layer, the layer being
masked) needs to have only one object on it, or else you break the
mask. The grey border of your mask movieclip needs to be deleted
before your animation will play. -
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 -
AS3 Putting Buttons Inside Movie Clip
I am practicing AS3 (after years of AS2) and am having trouble having a button inside a movie clip talk to another movie clip on the main timeline. Here is the code:
OneButton.addEventListener(MouseEvent.CLICK, OneButtonClicked);
function OneButtonClicked(event:MouseEvent):void
MovieTarget.gotoAndStop(1);
MovieDescription.gotoAndStop("One");
TwoButton.addEventListener(MouseEvent.CLICK, TwoButtonClicked);
function TwoButtonClicked(event:MouseEvent):void
MovieTarget.gotoAndStop(2);
MovieDescription.gotoAndStop("Two");
The code above works, but if I put OneButton and TwoButton inside a movie clip, I know longer can target MovieTarget and MovieDescription. The reason I want to put OneButton and TwoButton inside it's own MC is so I can dim each button after it is clicked by toggling the playhead inside that MC. Help? Thanks!Start over from the begining
press f8 and chose movieClip then draw your untoggled button call the movie button then create another movie and create your toggled button or greyed out button and call it greyedButton. Go to main stage add 2 button instances and 2 greyedButton instances( just drag from library). you have 4 instances on stage. give call instance names and place one them on top of each other so u can only see 2 buttons on stage. put the greyed button under the button.
now with action script
button1.addEventListener(MouseEvent.CLICK, OneButtonClicked);
function OneButtonClicked(event:MouseEvent):void
MovieTarget.gotoAndStop(1);
MovieDescription.gotoAndStop("One");
button1.visible = false; // here the greyed button will show
button2.addEventListener(MouseEvent.CLICK, TwoButtonClicked);
function TwoButtonClicked(event:MouseEvent):void
MovieTarget.gotoAndStop(2);
MovieDescription.gotoAndStop("Two");
button1.visible = true; // here button1 will go back to its orignal state
button2.visible = false // here the greyed button will show -
How to load dynamic text inside a movie clip?
hello all - i have a main stage where on the first frame my
"home" movie clip displays. i did this by dragging/dropping, and
then i put a stop action. all works fine.
inside this home movie clip on the main stage, there are
links to other movie clips. for example, to get to my faq's page -
you click that button, then it takes you to frame 4 on my main
stage, where my faq's movie clip (followed by stop action) has been
dragged/dropped and displays properly.
within the faq's movie clip this process is repeated, with
buttons taking to you various pages (different frames where
different movie clips play - all works fine).
so now i want to add a dynamic text field within my faq's
movie clip. i have read numerous tutorials where i have created the
text file but i have not been able to display it with success
within my faqs movie clip.
here is some code that my dvd tutorial instructs me to place
on main stage as i practice getting this to work:
var myMCL:MovieClipLoader = new MovieClipLoader ();
var myListener:Object = new Object();
myMCL.addListener(myListener);
var myLV:LoadVars = new LoadVars();
myLV.onLoad = function (success:Boolean) {
if (success) {
_level5.loadedInfo.htmlText = myLV.info;
} else {
_level5.loadedInfo.text = "There has been an error loading
the requested information. Please contact the webmaster.";
and here is some code that i place on the faqs button within
my main movie clip that takes me back to main stage and plays faq
movie clip all successfully:
on (release) {
//Movieclip GotoAndPlay Behavior
_root.gotoAndPlay("4");
//End Behavior
and finally, here is some code that i place within my faqs
movie clip in an attempt to display my dynamic text within the faqs
movie clip - so far unsuccessful:
_level0.myLV.load("vars/faqs.txt");
NOTE:
i have published this to view - not working.
i have my faqs text file starting as info=
i have eliminated white space within my text file
i am using flash 8 pro
can anyone offer some sugestions? thanks!hmmmmm lemme double check as i seem to be a bit lost now.
// this is my actions layer code on frame 4 of main timeline:
stop();
var myLV:LoadVars = new LoadVars();
myLV.onLoad = function (success:Boolean) {
if (success) {
_level5.loadedInfo.htmlText = myLV.info;
} else {
_level5.loadedInfo.text = "There has been an error loading
the requested information. Please contact the webmaster.";
myLV.load("vars/faqs.txt");
1. fyi - at frame 4 on main timeline, one layer beneath the
actions layer where i dragged/dropped my faqs movie clip i gave my
faqs movie clip an instance name of "mainfaqs" - although nowhere
do i refer to this specific mc within my code.
2. where would i replace/insert the following code?
_level0.faq_mc.loadedInfo.text = myLV.info;
3. i didn't know about embedding font but i saw the option
and embedded it - still no results.
4. i'm not sure how to do the following:
_level5.loadedInfo.text ='test'; //although I would still
change the path as above
To see if your getting a return from the load call adn text
file, use a trace statment before the success condition and see
what it returns:
trace(myLV);
sorry to be such a pain - i really have looked around for
answers through previous postings and i googled it and i've been
taking instruction through lynda.com and dvds but i seem to be
stuck here.... as always - thanks for your time -
Buttons in movie clip won't bring up scenes
I've created a movie clip within my main scene.
I have 6 buttons in that clip. I would like these buttons to
call up the appropriate scenes but it isn't. I don't know whether I
cannot have buttons in movie clips call up new scenes or if my
actions script is simply wrong.
Here are some of the actions I've tried to upload the scene
or swf files:
thanks.
on (release) {
_root.gotoAndPlay("instance name");
----Also, named 1st frame of scenes with matching instance.
on (release) {
_root.gotoAndPlay("scene name");
on (release) {
gotoAndPlay("scenename",1);
on (release){
uploadMovie ("name.swf",1);
}use frame labels only and use the goto methods (like your
first 2 goto statements) and not the goto functions (like your last
2 goto statements).
also, there is no uploadMovie() method in actionscript. use
loadMovieNum() if you want to load name.swf into _level1. -
How do you combine two or more movie clips into one movie clip in iMovie '09
how do you combine two or more movie clips into one movie clip in iMovie '09
First create an iMovie project. Then drag the clips (or portions of clips) that you need into the project.
When finished, use the SHARE menu to share the project. -
Buttons in Movie Clips, Movie Clips in Movie Clips
Here goes. I have a scene with a button in the timeline, that
targets a frame in a movie clip, which is essentially the content
area of the layout. this is the code used:
on (release) {
textmov.gotoAndPlay ("challenge");
This works fine and dandy. Now the problem. Within this
"Content" movie clip, i have another movie clip with a button in
it. This clip is designed to tween in then upon clicking a close
button tween out. When I test it the button doesn't have rollovers
like and I can't get it to talk to the clip above it to play the
close tween.> I am still struggling with the fact, that upon testing,
buttons in movie clips
> do not exhibit their various states. Up, Over etc. I'm
relatively sure that you
> can have buttons in Movie Clips. I've also noticed that
any graphic symbols
> within a Movie Clip produce the hand, when the mouse
cursor is Over them, just
> like a button would. All of this happens, when testing
in the FlashPlayer.
is there any place you could kindly upload the source file
for me to check ?
> Do buttons operate independently of the Movie Clip
timeline they are placed in?
that is correct, button should work independently to movie
clip.
it only react to mouse upon entering the HIT state (which is
invisible to user)
and stops reacting once the mouse is off that state.
> I have one Movie Clip with a one frame time line, should
a Button symbol work
> it it?
of course it should work...
Try to upload the source, let us check it out for you, spare
you time on guessing :)
Best Regards
Urami
<urami>
If you want to mail me - DO NOT LAUGH AT MY ADDRESS
</urami> -
How do I create a play button for movie clip using AS3
Hello.
Bit new to this and have been searching the adobe forums and google. I am trying to create a button that will play an imported MovieClip.
I have a movie clip that I've imported into it's own layer (Layer1) Frame 1. I've given the MovieClip an instance name of foundationMovie.
I've created a button and have that on its own layer(Layer2) above layer1, it is also in Frame 1.
I've added a
stop (); action to layer2
The video is not set to autoplay.
I want the video to start playing when the viewer clicks the button. I know I've got to put some kind of event listener using AS3 in my timeline somewhere.
I've found some code and I've been trying to work with it. I'm sure I've mutilated it beyond usability but this is what I've got.
stop ();
player.addEventListener(MouseEvent.CLICK,play);
function play(event:MouseEvent)
gotoAndPlay("foundationMovie");
If someone could point me the right direction or help me with my code I would really appreciate it. Thanks.First, you need to clear up what you are working with... a movieclip and a video are usually entirely different things.
Next, your code may get you started on your way with some changes. You shouldn't use "play" as a function name due to there already being a play() method/function in Flash.
If the movieclip is a movieclip and has an instance name of "foundationMovie", and your button has an instance name of "player" then the following adjusted code would normally work...
stop ();
player.addEventListener(MouseEvent.CLICK,playMovie);
function playMovie(event:MouseEvent)
foundationMovie.play(); -
How to add button inside move clip and call it from main timeline?
Hi,
On the main timeline I have a movie clip called clock_mc and playBtn
playBtn is placed in the center of clock_mc
When you press playBtn clock_mc starts playing
playBtn.addEventListener(MouseEvent.CLICK, playClock);
function playClock(event:MouseEvent):void
if (event.target == playBtn)
clock_mc.play();
playBtn.visible = false;
trace ("play button was clicked");
This is working fine for me.
But I want to add replayBtn to the last frame of clock_mc and set up the function on main Timeline.
Another words when the clock_mc rich last frame you see replayBtn.
code example:
replayBtn.addEventListener(MouseEvent.CLICK, playClock);
if (event.target == replayBtn)
clock_mc.play();
replayBtn.visible = false;
trace ("replay button was clicked");
I've tryed to placed the replayBtn on the stage on the main timeline and I've set it up to replayBtn.visible = false;
And then I add replayBtn.visible = true; to last AS frame of clock_mc but it wont work
Even when I put the button physically to the last frame of clock_mc it will not work either.
Please helpI've solved the problem:-)
I've set replayBtn.visible = false; on first frame of clock_mc
and replayBtn.visible = true; at the last frame
and than as you sugested I'v add:
clock_mc.replayBtn.addEventListener(MouseEvent.CLICK, replayClock);
function replayClock(event:MouseEvent):void
clock_mc.play();
trace ("replay button was clicked");
I couldn't see replayBtn at the firs stage because I have clockTween assosiated with clock:
clockTween = new Tween(clock_mc, "x", Regular.easeOut, -469,438, .5, true);
and I had replyBtn in the wrong place so when clock_mc was coming up on the stage replayBtn was on the left side of the stage :/
Now I have to solve only one thing.
Maybe you would have any suggestions please.
I've set up stop(); in a first frame of clock_mc
that when you see clock_mc sliding in it has to wait for playBtn to be clicked
because I have two tween:
clockTween = new Tween(clock_mc, "x", Regular.easeOut, -469,438, .5, true);
playTween = new Tween(playBtn, "x", Regular.easeOut, -720,514, .5, true);
playBtn.visible = true;
so when you click on playBtn:
function playClock(event:MouseEvent):void
if (event.target == playBtn)
clock_mc.play();
playBtn.visible = false;
trace ("play button was clicked");
everythink is working fine except when I clik on replayBtn it play for I sec because there is stop(); on the first frame of clock_mc -
Advanced Button with Movie Clip and Fading
Problem: I'm trying to create a bottun that when you roll
over it it plays a movie clip and also fades in and out on roll
out. It is similiar to the three main navigating buttons on the
following site.
http://www.fjcruiser.ca/
the buttons with the compasses that appear are the ones I am
talking about.
I already know how to make buttons, I just can't figure out
the actionscripting to load the movie and also fade in and fade out
according to roll over and roll out.
Please help. Thank everyone.Amazingly, I actually know exactly how to do this. And it
only requires about 4 lines of code in the _root layer and on the
button.
Instead of having the rollover load an external movie, you
want the have the rollover execute an on(enterFrame) function that
tells each newly entered frame of your movie to check to make sure
the mouse is still on the button, and if not, send the movie
playhead backwards.
So, put that sampleMovie right on the stage with the button.
Then write the code in the _root so that says: as long as the mouse
is over the button, the movie will advance to nextFrame(). When it
gets to the next frame, again the code checks to see if the mouse
is on the button, if so, the movie is instruct to go one more next
frame (which is tweening the fade, right?) again, over and over
until the stop() at the last frame. But, if while while entering a
frame, the code finds that the mouse is no longer over the button,
it does the same thing but this time instructs prevFrame(), and so
on, going prevFrame (backwards, in other words) as long as the
mouse is not on the button.
The result of the above is a gradual fade in and out,
depending on whether the mouse is hovering. This, as opposed to an
abrupt disappearing graphic on(rollOut).
Click the below link for the .fla that demonstrates this
technique (which, by the way, I learned from Joshua Davis'
excellent book, "flash to the core". Check it out at Amazon, or
wherever. Lots of cool tricks).
click here for
fade_Movie example -
How do I start preloader later in movie clip?
Hi,
I want a preloader to start about 20 frames in, rather than at the very beginning of a movie clip, is this possible?
The reason I dont want it to start at the beginning is because it's on an external swf which loads when a button is clicked. Becuase the swf has a transparent background at the very beginning, the preloader is showing above the main movie and it cant really be seen. The main slideshow actually starts 20 frames in so this is when I really need the preloader.
any ideas?The way I have my preloader set is on another scene so i'm not sure
how to delay it by 20 frames in the main time line? When I move the
preloader frames along by 20 it doesn't work?
This is the code I have on my preloader:
loaded_bytes = _root.getBytesLoaded();
total_bytes = _root.getBytesTotal();
loadpercent = (loaded_bytes/total_bytes)*100;
if (loadpercent != 100) {
// OPTIONAL: Place the percentage on some textfield
preloaderText.text = int(loadpercent) + '%';
// Goto respected load percentage since not done
bar.gotoAndStop(int(loadpercent));
} else {
gotoAndPlay("Main", 1);
code on next frame:
gotoAndPlay(57); -
Buttons in movie clip don't work consistently
I'm using Flash navigation in Dreamweaver. Most of the
buttons work, except for a bunch that are in a movie clip. They
sometimes load the right page, sometimes not at all. I'm using
Flash CS3 and ActionScript 2.0.
This is what I have on the buttons:
on (release) {
getURL("This is where I have the URL", "_self");
}first and foremost. For testing, add a trace to your
function.
on(release){
trace("The release is triggering");
getURL("TheURL","_self");
If this traces out when you test the movie, then you know
that the release is getting triggered. If it does not, then it is a
problem with the release not getting triggered.
If it is getting triggered, then the problem is in the getURL
statement. I would try _root.getURL(); to force the getURL to
happen on the main timeline.
If it is not getting triggered, then I may consider using
timeline actions in the root timeline. To do this, give the
movieClip that they are embedded in an instanceName, and give each
button an instanceName. Then use code like the following on the
first frame of the root timeline:
myMovieClip.myButton.onRelease = function(){
getURL("TheURL","_self");
}
Maybe you are looking for
-
Write to next page in Adobe Form
Hi, I have created a Dynamic non-interactive form. I need to write some values to a table in the form. The data gets written in the PDF, but since the data to write in the table is huge, i could only see the values in the first page only. I tried
-
Protect iTunes playlist, warning dialogue box?
Hello, I remember a long time ago when I got my iPod, I was deleting playlists and got a warning dialogue box saying "Do you wish to delete this playlist?" and I clicked on the little checkmark on the bottom that said "Do not show this again" and the
-
How Do I add my ipod (and all its songs), to a new computer
hi, my husbands computer which had all his nano 3g library on has died, we have set up a new library on another computer, but how do we sync all the songs from the ipod onto the library? as it says it can only be used with one library, and I dont wan
-
Hi, Was just wondering, is it possible to set up a JTable displaying all the values from a table in my DB, set it to editable and then when pressing a button, update any altered values in the DB. I.e. if table contains values: 1 2 3 4 5 and in a JTab
-
How can I, from inside a Java application, get Windows applications standard icons, like Word's, Notepad's, etc.?