public Apple AttachTo(DisplayObjectContainer canvas) { MoveToLocation(); Control.AttachTo(canvas); return(this); }
/// <summary> /// Finds focusable parent or parent's parent /// </summary> /// <param name="component"></param> /// <returns></returns> internal static InteractiveComponent FindFocusableAncestor(InteractiveComponent component) { //Debug.Log("FindFocusableAncestor: " + component); InteractiveComponent ancestor = null; DisplayObjectContainer child = component; do { var ic = child as InteractiveComponent; if (null != ic) { if (ic.Enabled && ic.FocusEnabled || null != ic.FocusRouting) { ancestor = ic; break; } } //child = (InteractiveComponent) child.Parent; child = child.Parent; }while (null != child); #if DEBUG if (DebugMode) { Debug.Log(null != ancestor ? string.Format("Focusable ancestor found: {0}", ancestor) : "Focusable ancestor NOT found"); } #endif //Debug.Log("ancestor: " + ancestor); return(ancestor); }
/// <summary> /// Creates the popup via factory/reflection /// </summary> /// <param name="parent">Parent component (for position calculations)</param> /// <param name="popupType">The popup class for instantiation</param> /// <param name="modal">Is this a modal popup</param> /// <param name="centered">Should popup be centered</param> /// <param name="keepCenter">Should popup stay centered after the screen resize</param> /// <returns></returns> public DisplayObject CreatePopup(Type popupType, DisplayObjectContainer parent, bool modal, bool centered, bool keepCenter) { Component popup = (Component)Activator.CreateInstance(popupType); AddPopup(popup, parent, modal, centered, keepCenter); return(popup); }
public override void OnAwake() { base.OnAwake(); var cardContainer = Library.New <DisplayObjectContainer>("CardContainer"); AddEventListener <MouseEvent>(MouseEvent.MOUSE_MOVE, onMouseMove); cardContainer.Y = ViewportHeight * .4f; cardContainer.X = ViewportWidth * -.4f; AddChild(cardContainer); var offsetX = ViewportWidth / 30f; var offsetY = -ViewportHeight / 30f; DisplayObjectContainer lastParent = cardContainer; for (var suit = 0; suit < 4; suit++) { for (var number = 0; number < 5; number++) { var card = Library.New(_cardSuits[suit] + (number + 1).ToString(), "Card" + _cardSuits[suit] + (number + 1).ToString()); lastParent.AddChild(card); lastParent = card; card.X = offsetX; card.Y = offsetY; card.AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onCardPress); card.AddEventListener <MouseEvent>(MouseEvent.MOUSE_MOVE, onCardMouseMove); card.AddEventListener <MouseEvent>(MouseEvent.RELEASE_OUTSIDE, onCardReleaseOutside); } } this.Name = "Mouse Events Stage"; }
public static void RemoveAllChildren(DisplayObjectContainer container) { while (container.numChildren > 0) { container.removeChildAt(0); } }
/// <summary> /// Adds a popup to popup stage /// </summary> /// <param name="popup">A popup to add</param> /// <param name="parent">Parent component (for position calculations)</param> /// <param name="modal">Is this a modal popup</param> /// <param name="centered">Should popup be centered</param> /// <param name="keepCenter">Should popup stay centered after the screen resize</param> public void AddPopup(DisplayListMember popup, DisplayObjectContainer parent, bool modal, bool centered, bool keepCenter) { #if TRIAL /* HACK CHECK */ Acme acme = (Acme)Framework.GetComponent <Acme>(true); if (null == acme || !acme.gameObject.activeInHierarchy /*active*/ || !acme.enabled) { return; } #endif if (_popups.Contains(popup)) { return; } #if DEBUG if (DebugMode) { Debug.Log("AddPopup"); } #endif List <PopupOption> options = new List <PopupOption> { new PopupOption(PopupOptionType.Parent, parent), new PopupOption(PopupOptionType.Modal, modal), new PopupOption(PopupOptionType.Centered, centered), new PopupOption(PopupOptionType.KeepCenter, keepCenter) }; AddPopup(popup, options.ToArray()); }
public override void OnAwake() { base.OnAwake(); var outerContainer = Library.New<DisplayObjectContainer>("OuterContainer"); AddChild (outerContainer); outerContainer.X = outerContainer.Y = 1f; _container = Library.New<DisplayObjectContainer>("Container"); outerContainer.AddChild(_container); _container.Rotation = 30f; var offsetX = ViewportWidth/50f; var offsetY = ViewportHeight/50f; for (var suit = 0; suit < 4; suit++) { for (var number = 0; number < 5; number++) { var card = Library.New (_cardSuits[suit] + (number+1).ToString()); Assert (!_container.Contains(card), "_container should not contain " + card.Name); _container.AddChild(card); Assert (_container.Contains(card), "_container should contain " + card.Name); card.X = offsetX * (suit * 5 + number); card.Y = offsetY * (suit * 5 + number); card.MouseEnabled = true; card.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onCardPress); card.AddEventListener<MouseEvent>(MouseEvent.MOUSE_UP, onCardRelease); } } }
/// <summary> /// Initializes a new instance of the <see cref="Tween"/> class. /// </summary> /// <param name='targetObj'> /// The objet to perform the Tween on. /// </param> /// <param name='propertyName'> /// Property name, eg. "X", "Y", "ScaleX", "Alpha", etc. /// </param> /// <param name='endVal'> /// The value to tween to. The tween will run from the property's value at start time to the end value. /// </param> /// <param name='duration'> /// Duration in seconds of the tween. /// </param> /// <param name='easingType'> /// Easing type. Any function matching the see cref="EaseValue"/> delegate. /// </param> /// <param name='delay'> /// Delay, in seconds. /// </param> /// <param name='startCallback'> /// Called when tween starts (after any delay). /// </param> /// <param name='endCallback'> /// Called when tween ends /// </param> /// <exception cref='Exception'> /// Thrown when a Tween is created before Stage /// </exception> /// <exception cref='ArgumentException'> /// Thrown when targetObj param is null or targetObj does not have property referenced by propertyName arg. /// </exception> public Tween(DisplayObjectContainer targetObj, string propertyName, float endVal, float duration, EaseValue easingType, float delay = 0f, TweenCallback startCallback = null, TweenCallback endCallback = null) { if (TweenRunner.Instance == null) throw new Exception("TweenRunner must be added to Stage before creating Tweens"); if (targetObj == null) throw new ArgumentException("targetObj is null"); Id = Guid.NewGuid(); TargetObj = targetObj; if (!String.IsNullOrEmpty(propertyName)) { Property = targetObj.GetType().GetProperty(propertyName); if (Property == null) throw new ArgumentException("targetObj does not have property named " + propertyName); } //StartVal gets set when tween actually starts running, since the value may change during a delay EndVal = endVal; StartTime = TweenRunner.Instance.__GetCurrentTime(); Duration = duration; EasingType = easingType; Delay = delay; StartCallback = startCallback; EndCallback = endCallback; if (!String.IsNullOrEmpty(propertyName)) TweenRunner.Instance.__AddTween(this); }
public static IEnumerable <DisplayObject> EnumKinds(DisplayObjectContainer container) { int n = container.numChildren; for (int i = 0; i < n; i++) { yield return(container.getChildAt(i)); } }
public void SetProject(ProjectValueObject project, DisplayObjectContainer renderTarget) { _project = project; foreach (var emitterValueObject in project.Emitters) { StarlingHandler handler = (StarlingHandler)emitterValueObject.Emitter.ParticleHandler; handler.Container = renderTarget; } }
public static T[] AttachTo <T>(this T[] e, DisplayObjectContainer c) where T : DisplayObject { foreach (var i in e) { i.AttachTo(c); } return(e); }
/// <summary> /// This utility sorts the drawing list by request<br/> /// Takes the component as input and reads its child list internally<br/> /// Then it sorts it and saves into the drawing list<br/> /// Note: the original child list is never being modified (we want to stay robust here) /// </summary> /// <param name="doc"></param> public static void UpdateDrawingList(DisplayObjectContainer doc) { #if DEBUG if (DebugMode) { Debug.Log(string.Format(" DepthUtil -> UpdateDrawingList: {0} -> [orderList: {1}, depthList: {2}]", doc, doc.QNumberOfChildren, doc.QDrawingList.Count)); } #endif UpdateDrawingList(doc.QChildren, doc.QDrawingList); }
public ChildMover(DisplayObjectContainer from, DisplayObjectContainer to, int numberOfChildren) { _docFrom = from; _docTo = to; //_ctFrom = _docFrom as Container; //_ctTo = _docTo as Container; _numberOfChildrenToMove = numberOfChildren; }
public PlayerSpaceView(Player model, DisplayObjectContainer parent) : base(model, parent) { this.player = model; player.ship.addEventListener(Event.CHANGE, handler); player.ship.addEventListener(Ships.ShipEvent.PART_CHANGE, handler); this.addChild(hull_view); hull_view.addEventListener(MouseEvent.CLICK, onClick); reloadHull(); }
static void AddLabel(DisplayObjectContainer container, string label) { if (string.IsNullOrEmpty(label)) { return; } var c = new Label(); c.text = label; container.addChild(c); }
public static T AttachTo <T>(this T e, DisplayObjectContainer x) where T : DisplayObject { if (e == null) { return(e); } x.addChild(e); return(e); }
protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); UpdateScreen(); //parent.Position = new Vector2(pos+=0.5f, 0); DisplayObjectContainer.Update(); this.SwapBuffers(); }
/// <summary> /// /// </summary> /// <param name="stage"></param> /// <param name="renderQueue"></param> /// <returns></returns> public bool renderStage(DisplayObjectContainer stage, int renderQueue) { materialList.Clear(); currentMaterial = null; subMeshId = -1; quadCount = 0; zDrawOffset = 0f; phaseId = 0; sameUpdateCounter = true; numVerts = 0; numIndex = 0; renderDisplayObjectContainer(stage, white, false, renderQueue); if (sameUpdateCounter) { return(false); } AppSubMesh(); bool newTriangles = numVerts > vertices.Length; if (newTriangles) { // Not enough vertices, increase size. vertices = vertices = new Vector3[numVerts]; colors = new Color32[numVerts]; UVs = new Vector2[numVerts]; mesh.Clear(); } else { // Too many vertices, zero the extra. Vector3 zero = Vector3.zero; for (int i = numVerts; i < vertices.Length; i++) { vertices[i] = zero; } } currentMaterial = null; subMeshId = -1; quadCount = 0; zDrawOffset = 0f; phaseId = 1; VertId = 0; UVId = 0; ColourId = 0; triId = 0; renderDisplayObjectContainer(stage, white, false, renderQueue); updateCounter = Time.frameCount; return(true); }
public void Awake() { if (_instance != null) throw new Exception("You can only have one instance of MouseInput"); _instance = this; _mouseEnabledObjects = new List<DisplayObjectContainer>(); _mouseEnabledObjectIds = new Dictionary<Guid, DisplayObjectContainer>(); _lastMousePos = new Vector2(-999999, -999999); _mouseOverObject = Stage.Instance; }
static void AddCheckBox(DisplayObjectContainer container, string label, bool defval, Action <bool> action) { var cb = new CheckBox(); cb.selected = defval; cb.label = label; cb.change += e => { action(cb.selected); }; container.addChild(cb); }
public static T AttachToContainer <T>(this T e, DisplayObjectContainer c) where T : global::System.Windows.Controls.Panel { __Panel p = e; if (p.InternalSprite.parent != null) { p.InternalSprite.parent.removeChild(p.InternalSprite); } c.addChild(p.InternalSprite); return(e); }
static void AddInput(DisplayObjectContainer container, double defval, Action <double> action) { var input = new TextInput(); input.text = defval.ToString(); input.width = 50; input.keyDown += e => { if (e.keyCode == Keyboard.ENTER) { var v = double.Parse(input.text); action(v); } }; container.addChild(input); }
public override void OnAwake() { base.OnAwake(); VerifySizingForEmptyObject(); VerifySizingForEmptyParent(); if (ViewportWidth > ViewportHeight) { ViewportWidth = 10f; } else { ViewportHeight = 10f; } _sizeChart = CinchSprite.NewFromImage("SizeChart", 100f, RegistrationPoint.BottomLeft); _sizeChart.Name = "SizeChart"; _sizeChart.X = ViewportWidth / -2; _sizeChart.Y = ViewportHeight / -2; AddChild(_sizeChart); //give it a weird pixels-per-meter to make sure it's not an even width in meters _earthContainer = Library.New <DisplayObjectContainer>("EarthContainer"); _earthContainer.SetPosition(3, 7); AddChild(_earthContainer); var innerContainer = Library.New <DisplayObjectContainer>("InnerContainer"); _earthContainer.AddChild(innerContainer); var yetAnotherContainer = Library.New <DisplayObjectContainer>("YetAnotherContainer"); innerContainer.AddChild(yetAnotherContainer); var earth = CinchSprite.NewFromImage("Earth", 158f, RegistrationPoint.Center); earth.MouseEnabled = true; earth.Name = "Earth"; earth.AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onEarthPress); yetAnotherContainer.AddChild(earth); //give it a weird pixels-per-meter to make sure it's not an even width in meters _mars = CinchSprite.NewFromImage("Mars", 212f, RegistrationPoint.BottomLeft); _mars.MouseEnabled = true; _mars.Name = "Mars"; _mars.SetPosition(.5f, .5f); _mars.AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onMarsPress); AddChild(_mars); }
private void StartHandler(Event e) { #if DEBUG if (DebugMode) { Debug.Log("StartHandler " + _component.Width + ", " + _component.Height); } #endif if (null != _maskGraphics) { return; // already masking this component } _parent = _component.Parent ?? (_component is Stage ? _component : null); if (null == _parent) { return; // we are not on the display list, so we have nothing to mask indeed } _maskGraphics = new LoadingMaskAnimator { IncludeInLayout = false, X = _component.X, Y = _component.Y, Width = _component.Width, Height = _component.Height, //Bounds = (Rectangle) _component.Bounds.Clone() // BEWARE! This was the reference bug (without Clone())!!!!!!!!! }; _parent.AddChild(_maskGraphics); LoadingEvent le = e as LoadingEvent; if (null != le) { _maskGraphics.Message = le.Message; } // critical! //_maskGraphics.Transform.Apply(); _maskGraphics.InvalidateTransform(); // subscribe to MOVE and RESIZE events of the component // we shall be levitating just over the component _component.AddEventListener(MoveEvent.MOVE, MoveHandler, EventPhase.Target); _component.AddEventListener(ResizeEvent.RESIZE, ResizeHandler, EventPhase.Target); _maskGraphics.Play(); }
private void rec(DisplayObjectContainer parent, SpaceObject so) { for (int i = 0; i < so.links.Count; i++) { SpaceObject child = (SpaceObject)RegistrySystem.Registry.getInstance().getElement(so.links[i]); if (child.spaceobject_type != SpaceObject.SpaceSystem) { PlanetView b = new PlanetView(child); b.load(child.src); b.setScaleXY(child.size); b.setRSPointToCenter(); parent.addChild(b); } else { SpaceSystemView d = new SpaceSystemView(child); parent.addChild(d); rec(d, child); } } }
public override void OnAwake() { base.OnAwake(); VerifySizingForEmptyObject(); VerifySizingForEmptyParent(); if (ViewportWidth > ViewportHeight) ViewportWidth = 10f; else ViewportHeight = 10f; _sizeChart = CinchSprite.NewFromImage("SizeChart", 100f, RegistrationPoint.BottomLeft); _sizeChart.Name = "SizeChart"; _sizeChart.X = ViewportWidth/-2; _sizeChart.Y = ViewportHeight/-2; AddChild(_sizeChart); //give it a weird pixels-per-meter to make sure it's not an even width in meters _earthContainer = Library.New<DisplayObjectContainer>("EarthContainer"); _earthContainer.SetPosition(3, 7); AddChild(_earthContainer); var innerContainer = Library.New<DisplayObjectContainer>("InnerContainer"); _earthContainer.AddChild(innerContainer); var yetAnotherContainer = Library.New<DisplayObjectContainer>("YetAnotherContainer"); innerContainer.AddChild(yetAnotherContainer); var earth = CinchSprite.NewFromImage("Earth", 158f, RegistrationPoint.Center); earth.MouseEnabled = true; earth.Name = "Earth"; earth.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onEarthPress); yetAnotherContainer.AddChild(earth); //give it a weird pixels-per-meter to make sure it's not an even width in meters _mars = CinchSprite.NewFromImage("Mars", 212f, RegistrationPoint.BottomLeft); _mars.MouseEnabled = true; _mars.Name = "Mars"; _mars.SetPosition(.5f, .5f); _mars.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onMarsPress); AddChild(_mars); }
static void AddComboBox(DisplayObjectContainer container, string label, int defval, Action <int> action, params string[] values) { AddLabel(container, label); var col = new ArrayCollection(); for (int i = 0; i < values.Length; ++i) { var item = avm.NewObject("label", values[i], "data", i); col.addItem(item); } var cb = new ComboBox(); cb.dataProvider = col; cb.selectedIndex = defval; cb.OnClose += e => { action(cb.selectedIndex); }; container.addChild(cb); }
/// <summary> /// /// </summary> void Awake() { stage = new DisplayObjectContainer(); meshFilter = gameObject.GetComponent <MeshFilter>(); if (meshFilter == null) { meshFilter = (MeshFilter)gameObject.AddComponent(typeof(MeshFilter)); } meshRenderer = gameObject.GetComponent <MeshRenderer>(); if (meshRenderer == null) { meshRenderer = (MeshRenderer)gameObject.AddComponent(typeof(MeshRenderer)); } meshRenderer.castShadows = false; meshRenderer.receiveShadows = false; gfxGenerator = instanceGfxGenerator(); if (drawScale == Vector2.zero) { drawScale = defaultDrawScale; } }
static void MoveChildren(DisplayObjectContainer container, double dx, double dy) { if (dx == 0 && dy == 0) { return; } bool h = dx != 0; bool v = dy != 0; int n = container.numChildren; for (int i = 0; i < n; ++i) { var child = container.getChildAt(i); if (h) { child.x += dx; } if (v) { child.y += dy; } } }
/// <summary> /// /// </summary> /// <param name="parent"></param> /// <param name="pcolor"></param> /// <param name="movieClip"></param> private void renderDisplayObjectContainer(DisplayObjectContainer parent, Color pcolor, bool movieClip) { if (phaseId == 0) { if (parent.updateCounter != updateCounter) { sameUpdateCounter = false; } } else if (phaseId == 1) { parent.updateCounter = Time.frameCount; } for (int i = 0; i < parent.numChildren; i++) { if (movieClip) { MovieClip obj2 = parent.getChildAt(i) as MovieClip; if (obj2.visible) { BitmapAssetInfo info = obj2.bmpInfo; renderGraphics(info, obj2, obj2.colorTransform); renderDisplayObjectContainer(obj2, obj2.colorTransform, false); } } else { DisplayObjectContainer obj2 = parent.getChildAt(i) as DisplayObjectContainer; BitmapAssetInfo info = obj2.bmpInfo; renderGraphics(info, obj2, pcolor); renderDisplayObjectContainer(obj2, pcolor, false); } } }
public override void OnAwake() { base.OnAwake(); CinchOptions.UseTopLeftSpriteSheetCoordinates = true; CinchOptions.DefaultPixelsPerMeter = 100f; this.Name = "ParentingStage"; AddSymbolDefinitions(); AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onStagePress); _everythingContainer = Library.New <DisplayObjectContainer>(); _everythingContainer.Name = "Everything container"; _everythingContainer.MouseEnabled = false; AddChild(_everythingContainer); _table = Library.New("Table"); _table.MouseEnabled = true; ValidateNumberMouseObjects(0); _everythingContainer.AddChild(_table); ValidateNumberMouseObjects(1); _table.Name = "Table"; _table.Width = ViewportWidth * .8f; _table.ScaleY = _table.ScaleX; var checkerBoard = Library.New("CheckerBoard"); _table.AddChild(checkerBoard); checkerBoard.MouseEnabled = true; ValidateNumberMouseObjects(2); checkerBoard.Rotation = 30; checkerBoard.Name = "Checkerboard"; checkerBoard.Y = checkerBoard.Height * .75f; var w = checkerBoard.Width; var h = checkerBoard.Height; var totalCheckers = 0; var isRed = false; for (var __x = -3.5f; __x <= 3f; __x += 1f) { isRed = !isRed; for (var __y = -3.5f; __y <= 3.5f; __y += 1f) { isRed = !isRed; var checker = Library.New(isRed ? "RedChecker" : "BlackChecker"); checker.Width = checker.Height = w / 8; checker.Name = "Checker" + totalCheckers++; checkerBoard.AddChild(checker); checker.MouseEnabled = true; checker.X = w * __x / 8f; checker.Y = h * __y / 8f; checker.AddEventListener <MouseEvent>(MouseEvent.MOUSE_OVER, onAnythingOver); checker.AddEventListener <MouseEvent>(MouseEvent.MOUSE_OUT, onAnythingOut); } } _everythingContainer.AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onAnythingPress); _everythingContainer.AddEventListener <MouseEvent>(MouseEvent.RELEASE_OUTSIDE, onAnythingUpOutside); AddEventListener <MouseEvent>(MouseEvent.MOUSE_DOWN, onStagePress); }
private void StagePressComplete(DisplayObjectContainer d) { }
public void Disable() { _mouseDownObject = null; }
public static T Attach <T>(this DisplayObjectContainer c, T e) where T : DisplayObject { return(e.AttachTo(c)); }
void init(CEvent e ) { // Get first sprite SwfSprite c0 = getChildAt<SwfSprite> (0); // Re-create sprite 0 container = new DisplayObjectContainer (); container.x = c0.x; container.y = c0.y; addChildAt (container, 0 ); removeChild (c0); GraphicsDrawOP op0 = c0.graphics.drawOPs [0]; offsetScale9Grid = new Rect (scale9Grid.x - c0.x, scale9Grid.y - c0.y, scale9Grid.width, scale9Grid.height); drawSize.x = op0.drawWidth; drawSize.y = op0.drawHeight; // Top left topLeftSprite = createRectTile (op0, new Rect ( 0, 0, offsetScale9Grid.x, offsetScale9Grid.y )); // Top Middle topMiddleSprite = createRectTile (op0, new Rect ( offsetScale9Grid.x, 0, offsetScale9Grid.xMax - offsetScale9Grid.x, offsetScale9Grid.y )); // Top Right topRightSprite = createRectTile( op0, new Rect ( offsetScale9Grid.xMax, 0, op0.drawWidth-offsetScale9Grid.xMax, offsetScale9Grid.y )); // Middle left middleLeftSprite = createRectTile ( op0, new Rect ( 0, offsetScale9Grid.y, offsetScale9Grid.x, offsetScale9Grid.yMax-offsetScale9Grid.y )); // Middle middle middleMiddleSprite = createRectTile ( op0, new Rect ( offsetScale9Grid.x, offsetScale9Grid.y, offsetScale9Grid.xMax-offsetScale9Grid.x, offsetScale9Grid.yMax-offsetScale9Grid.y )); // Middle right middleRightSprite = createRectTile ( op0, new Rect ( offsetScale9Grid.xMax, offsetScale9Grid.y, op0.drawWidth-offsetScale9Grid.xMax, offsetScale9Grid.yMax-offsetScale9Grid.y )); // Bottom left bottomLeftSprite = createRectTile (op0, new Rect ( 0, offsetScale9Grid.yMax, offsetScale9Grid.x, offsetScale9Grid.y )); // Bottom Middle bottomMiddleSprite = createRectTile (op0, new Rect ( offsetScale9Grid.x, offsetScale9Grid.yMax, offsetScale9Grid.xMax - offsetScale9Grid.x, offsetScale9Grid.y )); // Bottom Right bottomRightSprite = createRectTile( op0, new Rect ( offsetScale9Grid.xMax, offsetScale9Grid.yMax, op0.drawWidth-offsetScale9Grid.xMax, offsetScale9Grid.y )); // Init scale layoutScale9 (); }
public void Enable() { _mouseDown = Input.GetMouseButton(0); _lastMousePos = Stage.Instance.TheCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0)); _mouseOverObject = GetObjectUnderMouse(); }
private void TestEventListeners() { _country = Library.New<CinchSprite>("Country"); _state = Library.New<CinchSprite>("Stage"); _city = Library.New<CinchSprite>("City"); _house = Library.New<CinchSprite>("House"); _country.Name = "Country"; _state.Name = "State"; _city.Name = "City"; _house.Name = "House"; _country.MouseEnabled = _state.MouseEnabled = _city.MouseEnabled = _house.MouseEnabled; _country.AddChild(_state); _state.AddChild(_city); _city.AddChild(_house); AssertEverybodyWillTrigger(MouseEvent.MOUSE_DOWN, false); AssertOnlyCityHasEventListener(MouseEvent.MOUSE_DOWN, false); _city.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, GenericEventHandler); _city.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, GenericEventHandler); _city.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, GenericEventHandler); AssertEverybodyWillTrigger(MouseEvent.MOUSE_DOWN, true); AssertOnlyCityHasEventListener(MouseEvent.MOUSE_DOWN, true); _city.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, GenericEventHandler); AssertEverybodyWillTrigger(MouseEvent.MOUSE_DOWN, false); AssertOnlyCityHasEventListener(MouseEvent.MOUSE_DOWN, false); _eventRecord = new List<String>(); AssertEventRecordIs(""); _country.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, true); _state.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, false); _city.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, true); _city.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("CAP:Country,AT:City,BUB:State"); //removed the wrong handler, so should still do all the dispatching _country.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, GenericEventHandler); //removed the right handler with wrong capture setting, so should still do all the dispatching _country.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, false); _city.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("CAP:Country,AT:City,BUB:State"); _state.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("CAP:Country,AT:State"); //removed the right handler, so should do no the dispatching _country.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, true); _city.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("AT:City,BUB:State"); _state.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("AT:State"); //removed the right handler with wrong capture setting, so should still do all the dispatching _state.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler, true); _city.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("AT:City,BUB:State"); _state.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("AT:State"); _state.RemoveEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, StackRecordingEventHandler); _city.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs("AT:City"); _state.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, _city, new Vector2(0, 0), new Vector2(0, 0))); AssertEventRecordIs(""); Debug.Log("WIN: TestEventListeners"); }
public override void OnAwake() { base.OnAwake(); CinchOptions.UseTopLeftSpriteSheetCoordinates = true; CinchOptions.DefaultPixelsPerMeter = 100f; this.Name = "ParentingStage"; AddSymbolDefinitions(); AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onStagePress); _everythingContainer = Library.New<DisplayObjectContainer>(); _everythingContainer.Name = "Everything container"; _everythingContainer.MouseEnabled = false; AddChild(_everythingContainer); _table = Library.New ("Table"); _table.MouseEnabled = true; ValidateNumberMouseObjects(0); _everythingContainer.AddChild(_table); ValidateNumberMouseObjects(1); _table.Name = "Table"; _table.Width = ViewportWidth * .8f; _table.ScaleY = _table.ScaleX; var checkerBoard = Library.New ("CheckerBoard"); _table.AddChild(checkerBoard); checkerBoard.MouseEnabled = true; ValidateNumberMouseObjects(2); checkerBoard.Rotation = 30; checkerBoard.Name = "Checkerboard"; checkerBoard.Y = checkerBoard.Height * .75f; var w = checkerBoard.Width; var h = checkerBoard.Height; var totalCheckers = 0; var isRed = false; for (var __x = -3.5f; __x <= 3f; __x += 1f) { isRed = !isRed; for (var __y = -3.5f; __y <= 3.5f; __y += 1f) { isRed = !isRed; var checker = Library.New (isRed ? "RedChecker" : "BlackChecker"); checker.Width = checker.Height = w/8; checker.Name = "Checker" + totalCheckers++; checkerBoard.AddChild(checker); checker.MouseEnabled = true; checker.X = w * __x/8f; checker.Y = h * __y/8f; checker.AddEventListener<MouseEvent>(MouseEvent.MOUSE_OVER, onAnythingOver); checker.AddEventListener<MouseEvent>(MouseEvent.MOUSE_OUT, onAnythingOut); } } _everythingContainer.AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onAnythingPress); _everythingContainer.AddEventListener<MouseEvent>(MouseEvent.RELEASE_OUTSIDE, onAnythingUpOutside); AddEventListener<MouseEvent>(MouseEvent.MOUSE_DOWN, onStagePress); }
public static void MakeObjectInvisible(DisplayObjectContainer targetObj) { targetObj.Visible = false; }
public void __RemoveMouseEnabledObject(DisplayObjectContainer obj) { if (!_mouseEnabledObjectIds.ContainsKey(obj.Id)) return; _mouseEnabledObjects.Remove(obj); _mouseEnabledObjectIds.Remove(obj.Id); }
public static T AttachTo <T>(this T e, DisplayObjectContainer c) where T : DisplayObject { c.addChild(e); return(e); }
public void Update() { //just started if (_mouseOverObject == null) _mouseOverObject = GetObjectUnderMouse(); var mouseDown = Input.GetMouseButton(0); var mousePos = Stage.Instance.TheCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0)); var stagePos = new Vector2(mousePos.x, mousePos.y) - Stage.Instance.__GetOffset(); var localPos = stagePos; if (_lastMousePos.x == -999999 && _lastMousePos.y == -999999) _lastMousePos = mousePos; var mouseMoved = (Vector2)_lastMousePos != (Vector2)mousePos; var mouseButtonChanged = _mouseDown != mouseDown; DisplayObjectContainer newMouseOverObject = (mouseMoved || mouseButtonChanged) ? (GetObjectUnderMouse() ?? Stage.Instance) : _mouseOverObject; if (mouseMoved) { localPos = newMouseOverObject.GlobalToLocal(stagePos); if (newMouseOverObject != _mouseOverObject) { if (_mouseOverObject != null) { var me = new MouseEvent(MouseEvent.MOUSE_OUT, _mouseOverObject, new Vector2(_mouseOverObject.MouseX, _mouseOverObject.MouseY), stagePos); me.Bubbles = false; _mouseOverObject.DispatchEvent(me); } if (newMouseOverObject != null) { var me = new MouseEvent(MouseEvent.MOUSE_OVER, newMouseOverObject, localPos, stagePos); me.Bubbles = false; newMouseOverObject.DispatchEvent(me); } } //don't dispatch a move if we just entered or left if (newMouseOverObject == _mouseOverObject) { var me = new MouseEvent(MouseEvent.MOUSE_MOVE, newMouseOverObject, localPos, stagePos); me.Bubbles = false; newMouseOverObject.DispatchEvent(me); } } if (mouseDown != _mouseDown) { if (mouseDown) { newMouseOverObject.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, newMouseOverObject, localPos, stagePos)); _mouseDownObject = newMouseOverObject; } else { newMouseOverObject.DispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, newMouseOverObject, localPos, stagePos)); if (newMouseOverObject != _mouseDownObject && _mouseDownObject != null) _mouseDownObject.DispatchEvent(new MouseEvent(MouseEvent.RELEASE_OUTSIDE, _mouseDownObject, localPos, stagePos)); _mouseDownObject = null; } } _mouseDown = mouseDown; _lastMousePos = mousePos; _mouseOverObject = newMouseOverObject; }
public void __AddMouseEnabledObject(DisplayObjectContainer obj) { if (_mouseEnabledObjectIds.ContainsKey(obj.Id)) return; _mouseEnabledObjects.Add(obj); _mouseEnabledObjectIds.Add (obj.Id, obj); __SortMouseEnabledObjects(); }
public static void MakeObjectVisible(DisplayObjectContainer targetObj) { targetObj.Visible = true; }