Flex :: Add An EventListener To A MoiveClips/Sprites's ScaleX Change Event?
Jun 5, 2010How can i trigger an event for the scaleX property change of the movieClip or Sprite in Flash AS 3.
View 1 RepliesHow can i trigger an event for the scaleX property change of the movieClip or Sprite in Flash AS 3.
View 1 RepliesAm working in flex 4 the sample mxml is
<?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"
[code]....
on the perpendicular clicks it shows as like the second click. does the scaleX scaleY affects the width height?
Is there any shortcut way to add an eventListener to something like a select event for NavigatorContent. I am aware I can add a listener for a change event on the ViewStack and identify the selected NavigatorContent through that handler.
View 1 Replieshow a ScaleX/ScaleY event propagates down to the children of display object? I want to step in at some point and "re-scale" one of the children of a display object that has just been scaled with it's parent. I can't find any event that is fired, and ScaleX and width setters don't seem to be getting called on the child objects. I'm working on an ActionScript Project (not Flex) in FlashBuilder.
View 2 RepliesI'm trying to change the size of a 20 pixel by 20 pixel square. I have instances of this same class all throughout my code, and I can change them with scaleX and scaleY, no problem. But these particular instances do not change visually. Using a debugger, I can go in and see that the code is running, their scaleX and width properties are changing to what I'm setting them to. But visually, on the screen, they don't change by one pixel.
View 11 RepliesI am displaying a combo box in something of a WYSIWYG preview. I want the user to be able to click on the combo box and see the options inside, but I don't want them to be able to change the value. I tried using preventDefault() on the change event but it doesn't work. I don't want to disable it because I do want the user to be able to "look inside" the dropdown.
So I'm trying to block the change, but can't. My next resort is to change the selected index back to what it was before the change, Is there any way to do this within the scope of a ListEvent.CHANGE event listener?
Current Workaround is to basically re-assign the controls selected item the same way I am defining the selected item when I originally build it (a default selection). So a user sees their change then it immediately changes back to the default selection.
How do I change the colour of the sprites border? I've got some working code using sprite.transform.colorTransform, but that changes the colour of the whole sprite.
ActionScript Code:
function deck8x1MouseOver(event:MouseEvent):void
{
var deck8x1RedBorder:ColorTransform = new ColorTransform();
[Code].....
I have two sprites in my movieclip, one under the other, and i want both to listen to mouse clicks event. I found that only the top level sprite receives the event when i click on it. I need to dispatch the events on both, so I can't use mouseenabled=false.
View 2 RepliesI am trying to extract the last part (after the last .) of what trace(evtObj.target) shows, but when i try to use the code bellow to do it i get some of the info i get for the traces EventOb=_level0.RightSide.instance435.Ath (or whatever it is that triggered the event) Legth=Undefined
i get Undefined for all the string commands i have tied
example for evtObj.target with
_level0.RightSide.instance435.Ath
i want to get just Ath
[Code]....
I have 3 buttons that increase/decrease the var 'StressPercent' and this in turn shows the new number in a 'Stresslevelbox' text box. How do I now add an EventListener for when the 'StressPercent' var changes?
Code:
var StressLevelbox:TextField = new TextField();
StressLevelbox.text = "Stress";
StressLevelbox.x = 10;
[Code]....
I have a tween I am calling in a function and I'd like a scale event to occur once the tween complete.I've never created an event listener dependant on the completion of another actionI'll ultimatley scale cntcnt XandY to the newly created scprop once the TweenLite event completes.
Below is the code which calls the tween. I'd
function clktwn(e:MouseEvent):void{
//create vars for x,y cordinates of clicked county (child)
[code]....
When the escape key is released, I close the deepest child in a tree-like structure, and then tell it's parent (which is now the new 'deepest child') to close when the escape key is released ... but I do that while such an event is triggered, that causes the whole chain to close.
View 3 RepliesI'm new to AS3.0 Is there a good way to deal with many event listeners like say MouseEvent.MOUSE_OVER and MouseEvent.MOUSE_OUT for the same type of movie clips? I've been getting the following error if the mouse rolled over or out too fast.
TypeError: Error #1009: Cannot access a property or method of a null object reference. at csAS/onSubmenuRollOver()
TypeError: Error #1009: Cannot access a property or method of a null object reference. at csAS/onSubmenuRollOut()
In my scrolling code I want to remove the eventListener for my reportStageMouse event, but I get an error: 1120: Access of undefined property reportStageMouse. I am trying to remove the listener in my mouseUpOnStage event. I assume I cant remove the listener because it's in a nested function? [code]
View 7 RepliesI really don't need happening after spending a week figuring out why some code didn't work, only to rewrite it and have it suddenly start working. I guess it's the classic case of running into more, more serious problems right after making an extremely good breakthrough!.Anyways, my problem is that my dynamically drawn sprites with the PerspectiveProjection property set on each, all of which are contained in a movieclip (which is at stage-level), no longer have MouseEvent functionality - at this point, I think anything past regular Events no longer work, but my stack of important issues eats up all time I have to test.
Before I started having issues, I was using just a scale effect to simulate the 3D-ness of the movie. After figuring out why past attempts at using Z axis on these sprites failed, I decided to add the perspective part to the transforming of each of these sprites. Ever since then, Mouse functionality just simply does not work. No errors are thrown, no runtime errors are displayed, yet the trace function does NOT work within the functions (meaning it isn't the content of the function not working) - simply does not want to do anything!Other animations and such work perfectly fine - i.e. tweening the X, and Y values, etc
I have a "var counter:Number;" that changes when a function runs I need to know when that variable changes and what it has changed to so another function can use it
View 3 RepliesHow can I access to an object who fires an eventListener event?
Let's say I have a mc:
var element = new MovieClip();
which has an eventlistener:
element.addEventListener(MouseEvent.CLICK, elementEventHandler);
[Code]....
So that is what I want to achieve... Recover the object who fired the event and then do crazy things with it (in this example, add another object in it).
pd: yes, I know I can directly use the var element in this snippet, but in the real code I'm generating the mcs in a loop, according to a xml file.
I want to call the same event handler function with a click and also with a custom event. the problem is the event type that needs to be passed to the function. Is there are generic event type that can be used to call the function from both places?
Code:
menuBtn.addEventListener(MouseEvent.CLICK, menuOpen );
function menuOpen(event:MouseEvent){
[Code].....
In AS3 on Android is it bad from a performance perspective to attach mouse event listeners to individual sprites rather than to the stage? I am writing an app for an Android phone using AS3 in Flash Builder. The app has multiple screens that respond to user touch. The screens are arranged in a hierarchy and show list data so that when you click on an item in a list you are presented with a new screen with a new sub list on it.
I have been using an event listener to detect mouse / touch input and based on something I read that indicated that performance is much better if you keep the number of objects you are listening to to a minimum I have attached the mouse listeners from each screen to the stage object.
This all works fine but I am finding that as I move between screens (and they get popped or pushed onto the dislay stack) I have to keep track of alot of adding and removing listeners to the stage object. If I don't then windows higher up the hierarchy than the current screen keep receiving mouse events.
If I used listeners attached to sprites in each window then when the window was removed from the display even though it is kept in memory (ready to be popped back when a child window is closed) it won't receive any mouse events....
Performance doesn't seem to be impacted using listeners directly on sprites when using my HTC phone to test with, however I obviously don't know what it will be like on other phones. Does anyone have any experience either way or a view on the best approach?
Is there not an event that occurs only when there has been some sort of visual change to an object. So for example if it were a video or animated object it would be firing as often as EnterFrame. However, if it were some sort of input control just sitting there doing nothing visually, then the event wouldn't fire until the visual state changed as a result of some sort of user input for example.
View 3 RepliesWhat was the change in the textfield? I would want to compare the old text with the new text.the problem is, that I have multiple textAreas in a tab-editor, and all the textAreas are watched by one eventListener. I want to get a value calculated by the next formula[code]...
View 3 RepliesI am currently working with a Canvas object on which I am drawing curves using the curveTo() function of the canvas' corresponding Graphics object.The following animation is being performed on the Canvas object's scaleX attribute.<mx:AnimateProperty property="scaleX" fromValue="1" toValue=".5" duration="1000" />At present, this transformation is also scaling the line weight down by some arbitrary value. Is there any way to perform a scaleX transformation on the Canvas without it modifying the line weight of the lines drawn in the canvas?
View 1 RepliesBefore someone tells me that I should have searched the forum before posting an easy question like this one probably is that has already been posted and responded to a hundred times, I did try to search but I kept getting an error page saying something is wrong with the site. So anyways, what I am trying to do is have a text box display the number 100. Then there are two buttons. When one is hit, the number bisects between itself and last number lower than it displayed, when the other is hit it bisects between itself and the last number larger than it displayed. For instance, hitting the first button will change the value to 50 then when hit again to 25. If you then hit the second button it goes to 37.5 and then hit that button again it goes to 43.75. I have the following code:
var ce:Number=100;
ce0_txt.text=String(ce);
ce0left_btn.addEventListener(MouseEvent.CLICK, bisectdown);
[code]......
I have a piece of software I'm working on that is using a viewstack with 3 canvases. With the change event I need to look for index 2 which is the last canvas when it changes to this canvas I need it to grab data from inputs from the previous two canvases.Within the viewstack events I've assigned the function change() to the event childIndexChange.
Here is the method:
private function change():void
{
[code].....
I'm tracking how fast does the text of a textArea change. If it changes faster than 500 ms then i don't want to do anything, but if it doesn't change in 500 ms, i want to call a method.I tried like this:
public function textchangeListener(e : Event):void
{
if(((new Date).getTime() - changeTime)>500)[code].....
This method is the event handler for text change.But the problem is, if it changes only under 500 ms and after that it doesn't change, then my method won't be called. I make this for a better performance, so the prepareText() is called only when the user stops typing for 500 ms.
I have a Tree component that's used as a navigation menu between different 'pages'. When the user clicks a certain option in the menu, I switch the 'page' by switching between State components in my application. The thing is that when the user indeed clicks an option in the menu, I want to perform a validation of some of the information in a certain component. If the validation fails, I show an alert, and I'd like to prevent the navigation to the other page. One part of this is simply not changing the currentState of the document, but the tree component still goes on with the change event, and the result is page A still being shown on the screen, whereas the selected option in the tree is page B (to which the user wanted to navigate, but failed since some of the information wasn't valid).
I tried to figure out how I can cancel the change event on the tree component itself. The thoughts I had didn't quite fit nicely:
I searched for a slightly different event (such as 'changing' or 'startChange') on which I can call the stopPropagation() method (since the regular 'change' event is not cancelable), but none exists for the Tree component.
I also thought about always saving the current option that's selected in the Tree component by myself, and when the validation fails, I will set the Tree's selectedItem to that saved option. That's also ugly because such an action will raise another change event on the Tree, thus another change to the States components, and another population of the page in which I'm already at. That's something I really don't want to do.
I also though about using a different component, such as Menu (and I also found an implementation of a vertical Menu), but that doesn't even seem to help. The same problem will exist there.
There must be a best-practice for preventing a change process to commit!
I have a custom component on which I have bound an array collection to one of its proeprties: <comp:MyComp id="comp" prop="{images}" /> images is an arraycollection In the components' code I would like to know which event to listen on everytime images updates props. I tried a setter on props but the setter only gets called once when props is first set. I tried the collection event but I get "Update" events sent on top of 'add' and 'remove' events and I would rather not have to manage those. So is there an event(flex or otherwise) that is fired every time a component property is updated by a bindable property?
View 1 RepliesI'm playing around with the scaleX/Y in the canvas tag and have noticed some strange behaviour. When I set scale in in mxml the width and height of the canvas are adjusted accordingly. For example if I have a canvas like this: <mx:Canvas width="1000" height="1000" scaleX="0.1" scaleY="0.1" />
The canvas now appears on screen to have a width and height of 100 and if inside my creationComplete callback I check the width and height property they are indeed 100. But if I do exactly the same thing except I set the scaleX/Y property from actionscript the canvas on screen appears to have a width and height of 100 as expected, but when I check the width and height property of the canvas they are still at the previous values of 1000.
I have a standard combobox that dispatches a collection event when the dataprovider finishes initializing:
my_cb.addEventListener( CollectionEvent.COLLECTION_CHANGE, getMyStuff );
Then I have a custom component that also has a dataProvider. How do I get it to dispatch a collection change event when its dataprovider finishes loading?From what I've read, I can't do it. Will dispatching a propertychangeevent work?
UPDATE:I have a custom component that I call 'SortingComboBox' but it is not a ComboBox at all; it extends Button and I set is dataProvider property to my arraycollection, model.product (which is an arraycollection). how I use the dataProvider in that component:
code
[Bindable]
private var _dataProvider : Object;
public function get dataProvider() : Object
{[code]..........
In the createChildren() method of this component, I use this:
BindingUtils.bindProperty(dropDown, "dataProvider", this, "dataProvider");
The dropDown is a custom VBox that I use to display labels.
I've got a component called Box.as that has following two properties, and have their getters & setters defined:
private var _busy:Boolean;
private var _errorMessage:String;
In MXML that uses this component I define it like this:
<components:Box skinClass="skins.components.BoxSkin"
busy="{presenter.boxBusy}"
errorMessage="{presenter.boxErrorMessage}"/>
Where presenter variable is defined here in MXML and a Presenter class has boxBusy and boxErrorMessage variables defined as bindable property change events:
[Bindable(event="propertyChange")]
function get boxBusy():Boolean;
function set boxBusy(value:Boolean):void;
[Code]....
PROBLEM is that whenever I change boxErrorMessage for the presenter, I see the affect in MXML but nothing happens at all when I change boxBusy. Is there something extra I need to do with boolean variable?