ActionScript 3.0 :: Custom Event Dispatcher - Spot Where A Player Moves Around The Screen?
Aug 25, 2009
So I have a small game where I have implemented a* path finding. I have a spot where a player moves around the screen along the path found. I have a section where i know the user is at the end of the path and I am looking to dispatch an event at this moment so I can do things at the end of the path.
i have imported the aStar_path_dispatcher file into the move class then i do,
[code]...
then in my main document class i import the aStar_path_dispatcher again, and set up an instance of it: then add a listener:
[code]...
however this "move finished" doesn't seem to want to work. I have never used custom events before
I'm programming a little tank game (Check the attachment). The main class for tank is game.serovkonstantin.tanks.Tank.as and there are also 2 subclasses for now: Abrams and T90 which extend Tank. In my game.serovkonstantin folder I have a custom event (TankEvent), and the only event type inside of it which is TANK_INACTIVE.
I've added an event listener for MouseEvent.CLICK to each of the tank instances (inside Tank.as) which works just fine. When I add any of the tank instance onto the stage and click it, it traces the tank's name just like I wanted whether it's Abrams or T-90 depending on what tank I clicked. But the problem is that when I click a tank I also want it to dispatch my TankEvent.TANK_INACTIVE. The main stage has a listener for this event, so I expected it to catch the event and trace some phrase, but nothing happens I don't know whether it doesn't dispatch my event or doesn't catch it.
======== if you're interested why I need to dispatch this event, well,I suppose it will help my game know what tank to move when I click somewhere on the stage, and what tank(s) should be inactive,event it they all of the same type. I mean if I click one of the tanks it accepts all the controls while the other should be inactive
for a project I need to develop a custom video player that needs to be able to go fullscreen, with custom control (play btn etc) overlay. The player will be used in a flash application (say as a window in the application.
Now I can figure out how to build a player from NetConnection, NetStream, Video etc, but I have no idea how you would implement the ability to go fullscreen and have the control overlay when in fullscreen as well.
Note that I cant tell the SWF to go full screen, it needs to be just the player.
So I have two classes talking to each other with EventDispatcher. One is a thumbnail of an image, and when it's clicked, it sends an event to the other class to display the full size version. I'm using a MovieClipLoader instance to load the full version (and the thumbnail).
Here's how it's sending the event from the thumbnail class:
Code:
private function initButton () { this.loadMe.onPress = function () { this._parent.sendEvent(); }
[Code]....
The problem I'm having is it loads the full size version ONCE. After that, it no longer receives the event. The ("event received") trace no longer comes through. But the ("send event") trace continues to work.
The other weird part is if I comment out the loadClip, then the events come through just fine on both sides. But it's like after it loads an image once, it quits responding to that event ('onPhotoSelected'). Is there some kind of mis-communication between the events of the MovieClipLoader and my custom event or something?
I have two movieclips: MovieClip X and MovieClip Y.
MovieClip Y is nested inside of MovieClip X. MovieClip Y contains buttons with listeners attached to them. These listeners call a method
Code: buttonClickedHandler();
inside of buttonClickedHandler();... dispatchEvent() is called to dispatch a custom event that bubbles up to MovieClip X. This chain of events works as intended, I can set up a listener in MovieClip X for the custom event and everything is fine...
The problem comes when I try to invoke a dispatch on a button in MovieClip Y without actually physically clicking it. If i call
the listener for the button click event will fire properly, and if i trace the dispatchEvent of the custom event, it returns true meaning the event was dispatched successfully. But in MovieClip X... the listener for that custom event is never fired, its as if the custom even is not bubbling.
How do i create a trace that can detect if an event dispatcher is dispatching an event?....my problem is i've created a custom event that is not being dispatched i use this custom event in other applications and have verified that the code is correct I'm not getting any errors neither it just dies silently
there are 2 functions in my code that dispatch a TweenEvent. each function dispatches the same tween and adds the same TweenEvent.MOTION_FINISH event listener. however, the event listening function must act according to which function dispatched the event. is it possible to get the function of the event dispatcher from the event listener? i could use a flag to make this work if there are no other elegant solutions.
I've a parent (Canvas) with many children (LinkButtons)The linkButtons trigger an event to communicate between them:[code]Now, the issue is that the event is only listened by the dispatcher child. In other words, only the child triggering the event, is receiving it. I was wondering what's wrong with it, and if I should add a listener to the parent (Canvas)I basically need the children (LinkButton) communicate between them
I've been looking everywhere but I can't find the solution to this problem. I made a custom cursor and I want the hotspot not to be in the upper left part of the movie clip but in the place of the movie clip that I choose. So, how do you change the hot spot of a custom cursor? I'm using Flash CS4 AS3. I can't believe no one asked this before.
I have a loaded swf (CustomClass) and I want to listen a dispatch event from the swf, but it doesn't seems to work. The relation of the dynamic class are: Code: tablet(DocClass of the swf) ---> mainmenuC I'm trying to pass a event to a function in tablet, and have the codes listen to the dispatchEvent from the function in tablet.
ActionScript Code: CustomClass.addEventListener("profile_home", currentPage) private function currentPage(event:CustomEvent):void { trace("profile home clicked") } tablet.as [Code] ..... It doesn't return any error, but why does it not pass the data?
I'm building a flash app (just AS3 with FlashDevelop) and I'm having some trouble keeping things loosely coupled around the event system. I've done a lot of reading about central event systems and static eventdispatchers but they don't quite fit the bill for me. What I'm building is similar to a video player.I have a Player class which is the parent of all the other little parts of the app.The Player class extends Sprite and I've currently designed it so that you could instantiate multiple Player's and put them on the stage.I also have a Controller class which extends EventDispatcher and I dispatch all my events through this class. It's a central event class.
The problem is that I need to pass around a reference to this class so that all the other classes can dispatch and listen through it. Passing around the reference works but it's the exact opposite of loose coupling. I know I could make a static EventDispatcher that all the classes could see but then if I had two or three Player's on the stage they would all hear each others events.How can I create a type of sandbox that will allow all the child classes of a Player instance to be aware of the central dispatcher without passing a reference or making it static?
I'm having an issue with an event dispatcher and an event listener. Here is the application code... Code: Select allpackage { import flash.display.MovieClip; import flash.events.*; import flash.net.URLVariables; import SendAndLoad; public class Test extends MovieClip { [Code] .....
It will trace the loader.data variables but doesn't dispatch the event to the main application (Test). I'm listening for the event on the stage of the main but it doesn't trigger the event to display that the login has been successful even though it traces from the sendAndLoad class...
This is NOT duplicate of my earlier post (its is slightly different)But this is similar issue with similar error but its not the same error The error I am getting now is below while dispatching the custom event from my custom component
TypeError: Error #1034: Type Coercion failed: cannot convert events::MapEvent@a74ab51 to flash.events.MouseEvent. dispatchEvent(new MapEvent(MapEvent.CLICKED_ON_MAP));
Note: The error in my earlier post is giving below error message
Type Coercion failed: cannot convert flash.events::Event@81ecb79 to com.events.ShopEvent
The difference here are two things, the earlier error is while converting flash event to custom event and now this one is while converting custom event to flash event and secondly, I have no clue why it is trying to convert to the mouseevent where I am just dispatching my custom event with proper listeners.
In my game the player can create turrets, those turrets will be put into a array but my problem is that i dont want the player to be able to build 2 turrets or more on the same spot. this is what i have tried so far:
I have a large movieclip that contains all the elements of my game - the level backgrounds, the player character, the non-player characters etc. The stage is only a quarter of its width and when the player character moves off the edge of the stage the whole game movieclip moves a quarter width to the left or right, depending on which side the player character has left the stage from.
Each of the quarters of this large game movieclip are considered levels of the game (so there are four levels, obviously) and what I want to know is how do i get an object that exists in one level to appear in exactly the same position on screen in the next level, when the player moves to that level?
I have a form that is being created at the point the user clicks on. The algorithm is checking to see if a form exists in the same spot- if it doesnt, new object is created, if it does- result is traced. If no objects are on the stage- a new object is added. For some reason in this code- I get no results for the Mouse_Down event on the form itself. Method being called in main timeline:
I am trying to make my screen scroll as my character moves to the edge of it, but when I get to the edge of the screen nothing happens, I think this could be something to do with my registration points but I'm not sure. I have added trace statements for debugging but no luck. I have included my Fla so you can see what I mean. Here: [URL]
Here is the code I am using to try and make this happen PHP Code: // scroll the LBground if character gets past half way up or down the stage function scrollLevel():void { // Horizontal scrolling var horizontalCentre:Number = stage.stageWidth / 2; var horizontalPosition:Number = LBground.x + Mchar; [Code] .....
class Foo { [Bindable] public var property: String; }
The class Foo has an implicit event dispatcher to handle property change events. How can I access that without making Foo explicitly extend EventDispatcher?
I have a Main class (which extends Sprite) that adds my Loader as a child. The Loader processes a continuous stream of images from a server (think MJPEG). I create a socket, add a ProgressEvent.SOCKET_DATA listener, and put the data into a local buffer. If I have a complete frame, then I call loadBytes() on it, and go back to waiting for the next chunk of data to arrive.
This works very well. However, if the mouse is moving when the image is being updated, then the control flickers slightly. But if no frames are being received, then there is no flickering. Do I need to double-buffer the image? If so, where do I do this? The Loader doesn't seem like the right place.
I'm currently working on a project using FLVPlayback Components. I'm having this issue: The user launches the page, the Component loads fine. They play the video and click the "FullScreen" button. The video launches nicely in fullscreen by using this code
[Code]....
When the user hits esc. or exits fullscreen, they come back to the movie and see that it has shrunk and moved over a few pixels. It doesnt move the entire SWF, just the component. I assume it has something to do with the "else" line. Let me know if you can be of some assistance. Linked please find my FLA and a link to the page where the issue occurs.
I wrote a class for an object that as soon as it is created moves around the screen and can create another object (replicating itself). That seems to work fine for a while, but after like 20 or so objects on the screen things slow down a lot! I create the first object on frame one. The rest is all done by the objects themselves.
Would it be better if the objects did not move around on their own, but rather through a loop on frame one or does it not matter? I am working on a simulation that should go up to over 100 objects, but with this problem can't get there. The object is just a movie clip (imported png picture about 4 by 7 pixel, not animated). I was going to replace it with an animated one later, but that seems unlikely now.
I've just learned the basics of programmatic animation in Actionscript 3.0 but I can't seem to think of the right solution for this problem.Here is what I'm trying to do: A ball moves at a certain speed from the left of the screen to the right end. If there's a box in the way, it keeps bumping into it until the box breaks and it continues moving forward.The box will have a set weight that will control how much it slides when it is bumped by the ball. The ball will be pushed back a bit when it bumps the box.I have a very specific idea and all I need is a little help starting. How would you tackle this problem?
I've searched for almost a whole week to get this thing converted,I found a great tutorial for a scrollbar that was exactly what I was looking for. I wanted something that didn't have up or down buttons, had a thin line for the track, and a circular dragger. However, it was written in AS2. I've tried to convert it myself, but I'm a complete beginner, and I know nothing about AS3 code, or AS2 for that matter. So, I've managed to get the scroller icon to move, but it moves all over the screen & doesn't stay put
var scrollUpper:Number = 31.5; var scrollLower:Number = 381.5; var textLower:Number = 40;
I'm trying to make a game where the player moves and the background scrolls to make it look like the player is moving but really the background is. The problem is whenever I blow something up in the game the explosion follows the player instead of staying with the background.
I've got an app based on four frames with seperate events on each frame. The app is powered in AS3 and every frame calls stop(); and everything works well but the swf file in flash player has a problem where if the user hits control > play it moves to the next frame.How can I stop this? A simple conditional would prevent it but errors are triggered this way from ongoing functions from a previous frame.