2009-04-22 11 views
6

फ्लेक्स में, डिफ़ॉल्ट रूप से, जब आप टेक्स्ट इनपुट पर माउस करते हैं तो माउस कर्सर मानक I क्रॉस बार में बदल जाता है। मैं इस कर्सर को कैसे बदल सकता हूं ताकि नियमित माउस पॉइंटर कर्सर को क्रॉस बार के बजाए दिखाया जा सके?फ्लेक्स 3: टेक्स्ट इनपुट पर ध्यान देने पर मैं माउस कर्सर कैसे बदल सकता हूं?

अद्यतन: http://blog.flexexamples.com/2008/11/03/setting-mouse-cursors-in-flash-player-10/

जब से मैं कुछ समय के लिए फ्लेक्स 3 के साथ अटक कर रहा हूँ, मैं कुछ इसी तरह कैसे कर सकते हैं: ठीक है, ऐसा लगता है इस प्रक्रिया को इस ब्लॉग पोस्ट के अनुसार फ्लेक्स 4 में गंदगी सरल है?

Update2: इसके अलावा, इस सवाल का कुछ हद तक इस सवाल के समान है: Avoiding cursor change over dynamic text fields in Flash CS3

हालांकि, मैं मानक फ्लेक्स बिल्डर, नहीं Flash CS3 उपयोग कर रहा हूँ।

import mx.managers.CursorManager; 

protected function textMouseOverHandler(event:Event):void 
{ 
    CursorManager.setCursor(yourCursor, yourPriority, xOffset, yOffset); 
    // Rest of your handler 
} 

protected function textMouseOutHandler(event:Event):void 
{ 
    // be sure to set the cursor back here 
} 

उत्तर

2

आप CursorManager उपयोग करना होगा। जब लेबल लेबल पर होता है तो सिस्टम कर्सर को नहीं बदलेगा। यदि आप चाहते हैं कि पाठ उपयोगकर्ता द्वारा संपादन योग्य हो, तो आपको कुछ और काम करने की आवश्यकता होगी।

public class MyTextInput extends HBox 
{ 
public function MyTextInput() 
{ 
    super(); 
    var label:Label = new Label(); 
    label.text="some text"; 
    addChild(label); 
    addEventListener(MouseEvent.CLICK, editProperties, true); 
} 
private function editProperties(event:MouseEvent) 
{ 
    //do something to allow the user to edit the text e.g. PopupManager.createPopup 
} 
} 
+0

सेट कर्सर विधि हालांकि क्लास ऑब्जेक्ट लेती है। मानक कर्सर के लिए क्लास ऑब्जेक्ट को मैं किस ऑपरेटिंग सिस्टम पर चालू कर सकता हूं? – DyreSchlock

+1

यदि आप इस कार्यक्षमता को चाहते हैं तो आपको तीर छवि बनाना होगा। दुर्भाग्यवश, फ्लेक्स 3 कर्सर प्रबंधन को सिस्टम में पास करता है यदि कोई कर्सर परिभाषित नहीं किया गया है। यह आपका सिस्टम है जो मैं कर्सर प्रदर्शित कर रहा हूं ... फ्लेक्स नहीं। –

+1

हम्म। अजीब। तो कर्सर को बदलने के लिए सिस्टम कैसे जानता है? क्या टेक्स्टफिल्ड की पहचान बदलने का कोई तरीका है, इसलिए इसे बदलने के बारे में पता नहीं है? – DyreSchlock

0

आप एक TextInput के बजाय एक लेबल के साथ एक HBOX इस्तेमाल कर सकते हैं:

-1

वहाँ भी किसी भी घटक आप चाहते हैं के लिए सच को buttonMode संपत्ति की स्थापना करके एक और तरीका है। यह पाठ कर्सर के बजाय माउस कर्सर लाता है। MouseCursor और Mouse कक्षाओं में भी मौजूद हैं -

+0

तीन आवश्यक गुण हैं। ऑस्कर का जवाब देखें। – mwilson

7

बस स्पष्ट करने के लिए तीन गुण है कि संशोधित किया जाना चाहिए useHandCursor = सच buttonMode = सच mouseChildren = false

Leete अधिक जानकारी कर रहे हैं फ्लैश 3 पर फ्लेक्स 3। तो आप MOUSE_OVER और MOUSE_OUT ईवेंट को हुक कर सकते हैं:

elem.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void { 
    Mouse.cursor = MouseCursor.BUTTON; 
}); 

elem.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void { 
    Mouse.cursor = MouseCursor.ARROW; 
}); 
+0

किस पैकेज में 'माउस कर्सर' और 'माउस' मौजूद है? लिंक अब कहीं भी उपयोगी नहीं हैं। – Mashmagar

संबंधित मुद्दे