2011-08-12 11 views
7

मैं एक एचबॉक्स पर हाथ कर्सर सेट करने की कोशिश कर रहा हूं। मैंने बटनमोड का उपयोग किया है और हैंड कर्सर का उपयोग किया है लेकिन कोई भाग्य नहीं है। यह उदाहरण व्यस्त कर्सर प्रदर्शित करता है। क्या कोई मुझे बता सकता है कि इसे फ्लैशप्लेयर के हाथ कर्सर को कैसे प्रदर्शित किया जाए?फ्लेक्स: हाथ कर्सर कैसे सेट करें?

<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" xmlns:components="com.dn2k.components.*" > 

<fx:Script> 
    <![CDATA[ 
     private var cursorID:int; 
     //cursorManager 

     protected function box_mouseOverHandler(event:MouseEvent):void 
     { 
      cursorManager.setBusyCursor() 
     } 
    ]]> 
</fx:Script> 

<mx:HBox id="box" useHandCursor="true" buttonMode="true" mouseChildren="false" backgroundColor="0xcc0000" mouseOver="box_mouseOverHandler(event)"> 
    <s:Label text="Hiya sexy..."/> 
</mx:HBox> 

उत्तर

0

क्या जेफ कहा। इसके अलावा आप CursorManager.setCursor() का उपयोग कर सकते हैं। हालांकि आपको कर्सर के लिए ग्राफ़िक एम्बेड करना होगा।

6

इस कोड से पता चलता है कि यह पूरी तरह से माउस कंटेनर खत्म हो गया है, जबकि:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"> 
    <mx:HBox backgroundColor="0xcc0000" buttonMode="true" id="box" mouseChildren="false" useHandCursor="true"> 
     <s:Label text="Hiya sexy..." /> 
    </mx:HBox> 
</s:Application> 
+0

^मेरे लिए काम नहीं करता है। मुझे तीर सूचक मिलता है - Squiff – Squiff

+0

क्या फ्लेक्स एसडीके संस्करण, फ़्लैश प्लेयर संस्करण, ओएस और ब्राउज़र आप उपयोग करते हैं? – Constantiner

+0

फ़्लैश बिल्डर 4, मैक 10,3,181,14, ओएसएक्स 10.6.7, फ़ायरफ़ॉक्स 5.0.1 – Squiff

0

वहाँ के बारे में इस मंच चर्चा है कि आप उपयोगी मिल सकता है के माध्यम से आधे रास्ते एक उदाहरण है:

Custom CursorManager पोस्ट देखें # 7

+0

दुर्भाग्य से, लिंक –

+1

@ 1.21gigawatts Whoops, एक लिंक केवल उत्तर है। मेरे पास प्रश्न और सामग्री की समीक्षा करने का समय नहीं है (और मैंने थोड़ी देर में फ्लेक्स में काम नहीं किया है), लेकिन अगर आपको अभी भी इसकी ज़रूरत है तो फोरम की एक कामकाजी कैश की गई प्रति है! https://web.archive.org/web/20090110041612/http://www.actionscript.org/forums/showthread.php3?t=125314 –

2

यदि आप लेबल में हैंड कर्सर सेट करना चाहते हैं तो आपको माउसChildren = "false" सेट करना होगा और नीचे संशोधित कोड

<mx:HBox backgroundColor="0xcc0000" buttonMode="true" id="box" useHandCursor="true"> 
     <s:Label text="Hiya sexy..." buttonMode="true" mouseChildren="false" useHandCursor="true" /> 
    </mx:HBox> 

आशा है कि यह आपके लिए काम करता है।

0

आप नए माउस क्लास का भी उपयोग कर सकते हैं जो उच्च फ्रेम दर देशी कर्सर प्रदान करता है।

<mx:HBox rollOver="Mouse.cursor = MouseCursor.BUTTON" 
     backgroundColor="0" backgroundAlpha="0" 
     rollOut="Mouse.cursor = MouseCursor.AUTO"/> 

पृष्ठभूमि रंग और पृष्ठभूमि अल्फा का उपयोग हिट क्षेत्र के रूप में उपयोग किए जाने वाले ग्राफिक्स को आकर्षित करने के लिए किया जाता है। खाली स्पार्क कंटेनर में mouseEnabledWhereTransparent संपत्ति है जो मुझे नहीं लगता कि एमएक्स कंटेनर में मौजूद है। यहाँ यह पर दस्तावेज़ीकरण है:

जब सच है, इस संपत्ति सुनिश्चित करता है कि इस तरह के क्लिक के रूप में माउस की घटनाओं के समूह प्रतिक्रिया की पूरी सीमा और ऊपर रोल। यह गुण केवल तब प्रभावी हो जाता है जब माउस, स्पर्श, या फ़्लैश प्लेयर इशारा ईवेंट इस उदाहरण में जोड़े गए हैं। इसके अलावा, यह मानता है कि पर कॉल addEventListener()/removeEventListener() अनिवार्य नहीं हैं।

कहा करने के बाद ऐसा लगता है कि है कि इस mouseEnabledWhereTransparent संपत्ति की स्थापना के बिना काम करता है:

<s:Group id="testingHitGroup" left="10" top="10" 
     rollOver="cursorObject_rollOver(event)" width="100" height="100"/>