i have an .as class that extends mx.containers.Canvas (it's a draggable border of a resizable component), it becomes draggable on MOUSE_DOWN and stops being draggable on MOUSE_UP, MOUSE_OUT and ROLL_OUT. before calling startDrag() i create a Rectangle to define the drag area, i also have a _dragging: Boolean variable to control if it's draggable at the moment. the problem is that when i click this border it jumps to a negative coordinate without calling startDrag or switching _dragging to true.
i've overriden get x, set x, get y, set y and move() methods in order to solve it but the only thing i got was the fact that position changes without calling coords setters or move(), but at the moment it's changed a getter is called and returns new (negative) value so my question is what happens on startDrag() and how to filter unwanted incoming coords values?
My plan is to initiate part of a movie clip on mouseDown and complete it only when mouseUp has been initiated. This is for a drag and drop onto a UI element that appears only when mouse down is initiated.
I have managed to do this with the following AS2 on the first frame on the timeline:
as you can see, I have a container MC which I have added to the stage. I set its drag constraints using a Rectangle(). I then add the 'cat' child movieclip to the container, and I want this to be dragable too. However, as soon as I click on my cat when testing the MC. It shoots to point x=0 y=0 on the stage and doesn't move.
The container MC can be moved without any trouble.
If I remove the rectangle bounds from the containers startdrag() function. both MC's can be dragged without any issue.
I'm trying to set the previousClip variable (which belongs to the Scratch-class) in the onMouseUp function. I know I'm not doing it the right way, but can someone tell me how to set a the previousClip variable properly?
I'm trying to make a notepad - when you hold the mouse down you can draw like a pen and when you release the mouse it stops drawing. At the moment I can just get it to update after every click.
Writing.as:
ActionScript Code: //This class is to 'write' wherever the person drags the mouse class Writing {[code]...............
I am playing a movie clip onMouseDown event. There are total 10 movieclips in array. I want to disable onMouseDown event while movie is playing.PHP Code:
onMouseDown = roll2; function roll2(){ shimArray = new Array("ani1", "ani2", "ani3","ani4","ani6", "ani7", "ani8","ani9","an
I'm creating an animated menu that I'd like to 'stow away' when the user clicks anywhere but the Menu button.I know this involves adding a mouse listener for an onMouseDown event, but I'm not sure what or how to define this...Is it possible to define an entire area (my site) minus a specific area (the menu button) for an onMouseDown event?
The issue is that I am making something that has many buttons, and rather making a variable that has it turn true onMouseOver (when I go over an interface object, the variable wont let the click register), making clicking not register, and then register onMouseOut (when I leave the interface object, clicking is registerable) for every single button, I rather have it auto recognize if I am actually hitting the root object like shown in my attachment.
I've got this really weird problem. I have the following code:
[Code]....
The thing is, after I setup the onMouseDown, Anywhere I click on the screen run that function, not only the listMask movieclip! The movieclip is just a plain rectangle that was drawn by code, nothing special, no hidden graphics. Even if I don't draw anything in the movieclip, the whole screen is still clickable (as well as areas outside the screen, if we maximize the player window). This movieclip was created with .createEmptyMovieClip
The idea is that the function 'startDrawing' only has to execute when I click on the mc 'myMC' which contains a (filled) square, a sort of a drawingboard. However, it also executes when I click anywhere else in my movie.
I've got a very simple movie clip that is supposed to load an external .swf into an empty clip that gets created when you click on one of the clip instances on the stage.
[Code]....
The empty movie clip gets created (I assume), and the .swf gets loaded in, but when you click anywhere on the stage, this code gets executed, basically loading the .swf back in. It's only supposed to execute when you click on "about_mc" . What am I missing, besides a brain?
I am having problems with attaching multiple instances of the same mc, and tring to get an onMouseDown event for each of them.
The problem is that if I mousedown on one of the attached mc's, then all the attached mc's will trigger the onMouseDown event instead of only the one I clicked on.
the trace returns "onMouseDown called on 1" ...."n" instead of a single trace statement.
code:
function createSlideIcons(num){ var targetMC:MovieClip = this.form1.slideNav.slider; var spacer = 5;
How on earth do I use the onMouseDown event to remove objects generated by an array?
I'm still programming (if my bumbling can be called that ) the game I discussed in the 'Random Object Generation' thread and I'm using the basic framework of the array function that h88 gave me. Everything is working fabulously, but getting the things to disappear onMouseDown is a problem - it doesn't work.
Oh, and if I reference Target.prototype.onMouseDown and tell it it to this.unloadMovie, it unloads every single target on the screen instead of the one your mouse is actually over, making for a fairly... lame... game. I'm pretty sure it's because every single clip generated by the array is a Target prototype instance and so when the MouseDown occurrs, it unloads every Target movieClip. And I am using a hitTest in the Target.prototype.onMouseDown command, so that doesn't solve anything...
I have a CS3 scrollpane component with a movieclip loaded into it that the user can scroll up and down and side to side. In the movieclip I have a PNG and a drawing function that essentially lets the user drag and draw a yellow highlight box on the PNG. So onMouseDown the drawing function starts, onMouseMove the box size is set based on where the user puts the cursor and onMouseUp the box is actually drawn.
My problem is that if the user clicks on the scroll pane dragger bars (for lack of a better term) it draws a box where they clicked and dragged the scroll bar. how I could disable the onMouseDown if the user is interacting with the scrollpane?
I have tried setting X&Y conditions, but if they only work if the user is at the bottom right corner of the image. I also tried making an invisible button that would change a variable on rollOver and rollOut but that messed up my scrollpane somehow.
here is my drawing code if that helps at all:
PHP Code:
// var myClipNames:Array = ["mc0", "mc1", "mc2", "mc3", "mc4", "mc5", "mc6", "mc10", "mc11", "mc12", "mc13", "mc14", "mc15"]; var i = 0;
Is there a way to make the onMouseDown function also work within the MovieClips area in this code example? It seems like the two functions are conflicting.
I've written a lot of code, and I have a ton of onMouseDown clipEvents, but now I want to user just to be able to mouse over instead of clicking. Is there any code that will automatically activate all onMouseDown functions in your program?
Have you ever noticed that problems arise when you use movie clips as buttons, script their functions with AS and then, rather than simply clicking on one of them, you click and hold down. The main problem is that rollOut animations are not played.
For example lets say you have 2 buttons next to each other and you click one and hold down on your mouse, then move to the next button, you'll see that both buttons now display the rollOver state.
Is there any way around this? I test this on almost every flash site I visit and only a small few seem to be able to get around it. Usually I don't mind so much because users will rarely click and hold imo, but for the site I am building at the moment I really want to finally know how to get around it. I've noticed it does the same thing no matter what event handler I use.
is there a way to drag multiple movieClips at the same time? Flash help explicitly says: Only one movie clip can be dragged at a time. After a startDrag() operation is executed, the movie clip remains draggable until it is explicitly stopped by stopDrag() or until a startDrag() action for another movie clip is called. anyone know of a way to do it anyway? maybe combining them in a dynamic mc or something?
I have a zoom in function and when I'm zoomed in I can drag the movie clip around with a drag function I have a zoom out function which restores the movie clip to its original size but I would like the drag function to be disabled while zoomed out.[code]...
I've created a function called dragItem() that I call with the MOUSE_DOWN event. I've got it working....kind of. I can access the function when the mouse is clicked and I can even get the name of the instance when the mouse is down. I'm trying to use the same logic to get the single object to allow a drag. see my code below...
function dragItem(event:MouseEvent):void { var instName:String = event.target.name; trace(instName); trace(event.target.width); event.target.startDrag(); event.target.removeEventListener(MouseEvent.MOUSE_DOWN,dropItem); event.target.addEventListener(MouseEvent.MOUSE_UP,dropItem); }
I get this error when I try to drag the item...ReferenceError: Error #1069: Property startDrag not found on flash.display.Loader and there is no default value. at Main/::dragItem()
"Three-dimensional display objects follow the mouse and Sprite.startDrag() moves the object within the three-dimensional plane defined by the display object. Or, if the display object is a two-dimensional object and the child of a three-dimensional object, the two-dimensional object moves within the three dimensional plane defined by the three-dimensional parent object."
However, this does not seem to be the case. I have a 2D object which is the child of a 3D object, but startDrag will not work on the child. If I remove any tweens in code from the parent's rotationY then startDrag will work. If I have any reference to rotationY it will not work, even if it is set to 0.
I have an index file in which I load my external .swf. One of the external .swf has a drag and drop quiz. And as you can guess, the startDrag doesn't work! In fact, when I publish within Flash it works just fine, but when played within the index file, it stops working!
For your information : all my files are in AS3.
So here's a bit of my code.
var interbouton : Number = 10; //I have 7 items that I can dragfor(var i:Number=0; i<7;i++){ var dragBtn :MovieClip = new Drag();
I have noticed when setting a bounding box on a drag object, if you go outside the bounds of the box you have set, the mouse won't let go of the object unless you go back inside the bounds and click on it again. Is there any way to force the stopDrag if you go outside the bounds while dragging? I have tried this bit of code:
I'm making a strategy game the uses a tile map to show information about the other players! Every tile is 50*50px and when you start the map it loads about 50 tiles and puts them together (all this from a Flash->ASP->MySQL which i managed to do on my own)
What i need to do is to make the map draggable (kinda like maps.google.com) and make every tile clickable! I can't manage to do both of these things at the same time All the tiles are in a movieclip called mapMc so by creating a big button above the visible map area and write:
ActionScript Code: on (press) { allSize = _global.fullMapSize/2; //This gets the size of the map after all tiles have loaded[code].....
And that kinda works (except for the boundaries)Second, when you press a tile, which i stupidly constructed as another button, so every tile is a button (loaded dynamically) with as that fetches the tile information (already fixed ) But how do I combine them?