Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-07-2011, 17:02   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 163
Path and MouseEvents

Hallo zusammen.
ich wollte wissen wie ich mouseevents auf nicht rechteckigen pfaden abfangen kann als beispiel das hier:

Code:
<?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" minWidth="955" minHeight="600" xmlns:local="*">
	<fx:Declarations>
		<!-- Platzieren Sie nichtvisuelle Elemente (z.*B. Dienste, Wertobjekte) hier -->
	</fx:Declarations>
	
	<local:isoTile/>
	
</s:Application>
Code:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx" 
		 initialize="init()"
		 >
	<fx:Declarations>
		<!-- Platzieren Sie nichtvisuelle Elemente (z.*B. Dienste, Wertobjekte) hier -->
	</fx:Declarations>
		
	<fx:Script>
		<![CDATA[
			private var m_nTileLength:Number = 100;
			private var m_nIsoAngle:Number = 2*Math.PI*(30/360);
			
			private var m_nTileHorizontal:Number = Math.cos(m_nIsoAngle) * m_nTileLength;
			private var m_nTileVertical:Number = Math.sin(m_nIsoAngle) * m_nTileLength;
			
			[Bindable] private var m_nXM:Number = m_nTileHorizontal;
			[Bindable] private var m_nYM:Number = m_nTileVertical;
			
			[Bindable] private var m_nXR:Number = m_nXM - m_nTileHorizontal;
			[Bindable] private var m_nYR:Number = m_nYM;
			
			[Bindable] private var m_nXL:Number = m_nXM + m_nTileHorizontal;
			[Bindable] private var m_nYL:Number = m_nYM;
			
			[Bindable] private var m_nXO:Number = m_nXM;
			[Bindable] private var m_nYO:Number = m_nYM - m_nTileVertical;
			
			[Bindable] private var m_nXU:Number = m_nXM;
			[Bindable] private var m_nYU:Number = m_nYM + m_nTileVertical;
			
			private function init(): void
			{
				trace(m_nXM, m_nYM, m_nXR, m_nYR);
			}
			
			private function onTile ( event:MouseEvent ) : void
			{
				trace(event.currentTarget);
				tilecolor.color = 0x00ff00;
			}
			
			private function offTile ( event:MouseEvent ) : void
			{
				tilecolor.color = 0x000000;
			}
		]]>
	</fx:Script>
	<s:Group mouseOver="onTile(event)" mouseOut="offTile(event)">
		<s:Path data="M {m_nXR} {m_nYR} L {m_nXO} {m_nYO} L {m_nXL} {m_nYL} L {m_nXU} {m_nYU} Z">
			<s:fill >
				<s:SolidColor id="tilecolor" color="0x000000"/>
			</s:fill>
			<s:stroke>
				<s:SolidColorStroke color="0x000000"/>
			</s:stroke>
		</s:Path>
	</s:Group>
	
	
	
</s:Group>
Der code baut eine quadrat in der isoperspektive. ich will jetz das mouseover nur ausgeführt haben wollen, wenn die maus nicht auf die gruppe geht sondern tatsächlich auf den pfad und das füllobjekt (also ohne boundingbox) doch wie kann ich das machen?
Vielen dank schon mal
hothead89 ist offline   Mit Zitat antworten
Alt 17-07-2011, 17:30   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Die Doku sagt:
Code:
GroupBase.mouseEnabledWhereTransparent="true|false"
Omega Psi ist offline   Mit Zitat antworten
Alt 17-07-2011, 17:42   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 163
hallo

ah das ist auch eine möglichkeit, weil ich hab noch eine lösung gefunden. die frage ist nur, welche ist effizienter. die ture/false variante oder ein skinnableContainer weil da funktioniert das auch? ich will schon auf performance schauen. weiß jemand was besser ist? danke
hothead89 ist offline   Mit Zitat antworten
Alt 17-07-2011, 17:47   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Ich hab keine Idee, was du mit SkinnableContainer meinst?
Omega Psi ist offline   Mit Zitat antworten
Alt 18-07-2011, 11:39   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 163
Code:
<s:SkinnableContainer id="" mouseOver="onTile(event)" mouseOut="offTile(event)">
		
	</s:SkinnableContainer>
dieser container passt sich an den inhalt an und ist nicht rechteckig. die frage ist jetz eben nur was effizienter ist ... ich nehme fast an dass deine variante besser ist oder?
hothead89 ist offline   Mit Zitat antworten
Alt 18-07-2011, 12:41   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Was ist denn die Basisklasse der Skin?
Omega Psi ist offline   Mit Zitat antworten
Alt 19-07-2011, 17:46   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 163
SkinnableContainer => SkinnableContainerBase => SkinnableComponent => UIComponent => FlexSprite => Sprite => DisplayObjectContainer => InteractiveObject => DisplayObject => EventDispatcher => Object

Und von Group ist es ja:
Group => GroupBase => UIComponent => FlexSprite => Sprite => DisplayObjectContainer => InteractiveObject => DisplayObject => EventDispatcher => Object
hothead89 ist offline   Mit Zitat antworten
Alt 19-07-2011, 17:47   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Lies dir meine Frage noch mal durch.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
url-path verändern staccato PHP und MySQL 11 21-09-2010 13:25
Wo ist der SharedObject Path auf XP? mirzahat ActionScript 3 3 02-03-2008 13:34
C:\Path nach C:/path convertiren mit Flash nicht moglich !!! Xeef Flash 8 20 26-01-2007 08:45
String to Path SergeyL. Flash Einsteiger 10 21-03-2006 18:57
Get Best Path in 2d Matrix ? nky Softwarearchitektur und Entwurfsmuster 10 08-12-2002 00:37


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele