Actionscript 3 :: Flash Prevent Mouse Drag On Child
Jan 6, 2010
I have a movieclip with a child button in it.The movieclip can be dragged and dropped. I want to disable dragging and dropping of the movieclip when I press/drag on the child button. mouseChildren=false and mouseEnable=false don't work, since I want to keep my mouse events for the button.[code]
I have a few swf's that are loaded into a base file using levels. These clips can be cycled through by means of a setInterval function or when the user clicks the next or previous button. However, when the user hovers over a defined 'hit' area which is ultimately a blank movie clip, the setTimeout call is then canceled. This works fine, except that now the 'hit' clip - being above everything - prevents the movies below accepting hit states, and if I move it to below everything else, when one mouses over any element in the loaded movie, it then acts as though the user has mouse out of the hit area.
Is there any way to have this 'hit' clip do its job simply by determining if the mouse is over it, but without using an onRollOver function or equivalent?
I am using a flash swf from the website[url]...where it allows me to upload images via an xml file to the flash movie. However the flash movie is changing the mouse cursor to hand-cursor when passing the mouse on it, and also it is allowing users to click on the movie, while I wanted to leave the mouse cursor to remain as an arrow, and prevent users from clicking on it, I tried the following code, whereby I used another flash movie to call the dewslider swf, but in IE it is not working, although in firefox it is ok..[code]...
I was wondering, if I have two list boxes, and I want to drag and drop between both of them, how do I prevent the user from dragging onto the same list (thus duplicating the item? I cannot have a situation where that is the case
I have square which has child - the textField. I want to prevent text resize while I'm resizing parent. I tried removing child before resize and adding it after but it doesn't help. Also when i try to add completely new textField it seams to be already resized. Btw text is embedded.
how would you prevent dragging for some items of your List or DataGrid?
Let's say I had a list with two items: 'Tom' and 'Jerry'. Only 'Tom' should be dragable, not 'Jerry'.
Ideally I had a 'isDragEnabled(item:Object):Boolean' function, which is being queried by the drag source.
My difficulties start with the fact that the 'dragStart' event handler has a null value for the dragSource, so right from the start I find it hard to find out what the drag-start is about..
PS There have been a few discussions on preventing or canceling a drop, but I haven't seen much about preventing the drag start, hence this question.
I have an AdvancedDataGrid with editable parameter to "true". My problem is that after a successfull drag & drop, the item is being edited and I don't want this to happen. I tried to create a custom advancedDataGrid with this:
My class is extending Sprite and inside i have overwritten width, height, scaleX and scaleY setters and forbidden scaling if scalable property is set to false. When i test this (put it on the stage and try scaling using these methods) it works fine. However if I add it as a child of some other DisplayObjectContainer and scale it my object is scaled too. Are there other public scaling methods that I could overwrite and that I am unaware of? If not, how could I achieve this effect without overwriting it's parent container's scaling methods?
How can I make sure my textfield doesn't scale along with it's parent movieclip?This textfield is created dynamically inside of a randomly scaled mc. I want to prevent the child txtfield from scaling along with it's parent.
I want to have an image and when I click on the image ,one can hold down the mouse and drag a copy to where ever on the stage and when one lets go, one can drag another and another with each copy still being able to be dragged after released.this is what i have but its pretty simple and doesn't work....
stage.addEventListener(MouseEvent.MOUSE_DOWN,makeA Box); var i:Number = 1; //i will be the total number of boxes var newBox:myMC = new myMC();[code]....
i have two tree one tree lets say TreeDrag is drag enabled and other is drop enabled lets say TreeDrop.. when i drag item from TreeDrag to TreeDrop,, i want to show feedback and everything else normal except the addition of dragged item in TreeDrop..
I would like to know the way to prevent a child swf from referencing its parent swf stage width/height?
for example, i created a child swf that loads image and center it on it's stage. As a stand alone its fine but i loaded it with parent swf, it centers on the parent swf instead.
I have my player who moves to where ever I click on the stage.How to I prevent the player from moving to areas that I don't want him to?
Example:How do I define that if the player clicks on the tree to NOT move to it.I know I could attach listeners to different movieclips but it would get out of control pretty fast. Is there a better way? Perhaps something to do with layering? If I apply a listener to the map object for example will anything on top of the map block the listener?
Basically I am dynamically calling product buttons, which on rollover invoke a child of a dropdown, which in turn invokes children which are squares filled with colour.What I need is for these squares to be clickable which will then colour something else using the colourMatrixFilter (I'll probably start another post for this problem at a later date).For some reason though adding the Square as a child to it's rightful parent - the dropdown makes the listeners completely useless. Add to the stage and the listeners work. I can't work out why either and have done loads of searching.[code] also if someone could show me in the right direction of pulling the XMLdata for the squares (which will be a name attribute).
Sometimes it's necessary in a Flash project to prevent the user from being able to click on a button at certain times during the presentation. I'll typically add an "invisible" button on top of the button (no graphics in the button except for the hit zone), which does the trick nicely BUT...The cursor, of course, turns into a hand icon, making the user think it's still a clickable button.Is there a way to prevent the cursor from changing from an arrow into a hand icon?Or, is there a better way to make buttons "unclickable" at times?
I have designed a menu that When you mouse over it, a custom cursor appears. When you mouse down it disappears and when you mouse up it returns. If you happen to mouse down and then drag the mouse off of the menu (whilst in mouse down) and then mouse up outside the menu, the custom cursor disappears. All good. The only issue is: If you happen to mouse down on the menu and then drag the mouse off of the menu AND off of the stage, i.e the SWF (whilst in mouse down) and then mouse up completely off of the stage, the custom cursor appears at the point it left the menu. I have tried to fix this using MOUSE_LEAVE but this dosnt work when the mouse button is pressed down. I have attached an FLA, SWF and the AS below.
I have a custom UIComponent that is basically just this:
public class WhiteboardUIComponent extends UIComponent { public function WhiteboardUIComponent() { super();
[Code]....
This is absolutely the simplest that I could make the example. The s:View is gobbling up my mouse events - if I add a handler in the MXML to the View, I get mouse events just fine. When adding a handler programmatically in my subclass' constructor, I get nothing. I thought maybe the layout was wrong, so I explicitly set the dimensions of my UIComponent and stuck it in a border just to be sure it was where it was supposed to be - same deal.
I am using Flex Spark Slider as a time-line for a Flex video player custom component I have created.
I want to prevent the user from clicking on the slider and changing its value, but at the same time I should be able to change the value of the slider programmatically.
Setting the "enabled" property for the slider to "false" doesn't help as then I am not able to change the slider value programmatically.
What's the correct way to track mouse position, from Adobe Flash, when someone has: Started a drag within the Flash application (a MOUSE_DOWN event), Dragged the mouse outside the app or even the browser window (a MOUSE_MOVE event), and Released the mouse button (a MOUSE_UP event)? For example (imagine Stack Overflow is a Flash application):
Within the app, I'm able to track the mouse X and Y positions with a MOUSE_MOVE event listener, but I lose it when it goes outside of the browser... So, how do I track the position of the mouse no matter where it goes? For a good example, try Google Finance. Try dragging the chart around; it'll still drag around if you move your mouse out of the browser window, and the mouse will be outside of the browser when you release it.
Also, check out KOKO KAKA; If you click on the scrollbar (make the browser window really small) and move outside of the browser window, the scroll bar moves just like a real one would. I believe both only work because the MOUSE_DOWN event "captures" the mouse, allowing the Flash application to track the position of the mouse even when it is outside of the browser.
Once I drag and drop the objects in this demo they stay on the stage if you push the next and previous button. Do I need to remove the Childs after they are dragged? What would the code look like?
[URL]
Code:
var startX:Number; var startY:Number; var counter:Number = 0;
Im trying to remove a child clip after a drag,I manage to get the target name property,But getChildByName fails me in the class thetargetName is a string and tobeRemoved is a DisplayObject.[code]
Here is a working script to drag drop a ball from the stage into another target mc:
ball.addEventListener(MouseEvent.MOUSE_DOWN, pickUp); stage.addEventListener(MouseEvent.MOUSE_UP, dropIt); function pickUp(event:MouseEvent):void{ [code]...
It works well but I'm new to AS3 and I am having difficulty amending this script to drag the ball out of a parent mc (instead of the stage) and onto another mc (the target mc). To explain: imagine a ball, a box, a tri, + more shapes all within a scrolling mc (initial parent), the user scrolls to select a shape, then drag-drops onto a target mc on the stage.The scrolling is no problem, but how would you amend the script above so that the ball can start inside a parent mc rather than on the stage itself?
I need to drag the child component in the parent such a way that the child component can replace the place they have in parent. E.g. If I have a 3 button a,b,c inside a panel and need to movie the position of a,b,c with drag and drop the placement could be b, a, c or c, a, b and so on.
I have built this, drag the various dots.[URL]...%20parent.html I did not use the flash startDrag because it had all sorts of issues. I wanted the dots to be restricted to the stage when dragged. That is any dot CAN leave the stage when it is not the one being dragged. For example make the kite big and drag the red dot, the blue dots are free to leave the stage (marked by outline in the online example) The code I have uses mousemove, and some globalToLocal conversion to keep the dots from leaving the stage area All was well so far.
Now I find out the kite has to be able to rotate! when I simply rotate the kite all of my dragging rules break down. Click the big blue button, each click rotates the kite 5 degrees. Looks OK at first, rotate 30 or 40 degrees and everything breaks down. I know its the globalToLocal limiting, is there a better way? Seems people here have a lot of experience with dragging and rotating in flash. Does anyone see a way to fix what happens, or a whole new way to do the drag.
I trying to create an animation that will demonstrate the basics of steering a sailboat. There will be a movieclip top view of the boat hull. Another movie clip will be the boat tiller. One end of the the tiller will have a grip that the user will drag with the mouse. Dragging the grip will turn the tiller turn right or left on its axis. When the user drags the tiller to the left, the boat hull turns to the right, and vice versa. I can get the tiller to rotate in a circle around its axis. However, making the tiller turn no more than 15 to 20 degrees left or right, and creating an event listener that will test when the tiller is turned left or right, then turn the hull the opposite direction as a sailboat would react.
but just seems to give me errors - would that be because i haven't defined anything else to do with the dragging? how do I declare the carousel is to stop on mouse up?
am i even looking in the right place? does the rotation of the carousel start elsewhere?
I tried to translate this old code into actionscript 3, but unfortunately the new code doesn't work anymore.The mouse events of the old code are general, not linked to a movieclip (which I did in the new code with the addEventListeners). How can you do this with as3? Something like Stage.addEventListener? (but then I got an error feedback from flash, so it must be done differently).I also don't know how to translate the onMouseUp part. Maybe with a removeListener?
old code: Actionscript Code: import com.flashcreations.utils.MathExtra;onMouseDown = function() { // define this