Absolutely, I was following this along but at some given point I thought
maybe they overlook the most simple way.
Which is always good, otherwise we would maybe have square wheels...

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Anthony Pace
Sent: zondag 29 maart 2009 13:45
To: Flash Coders List
Subject: Re: [Flashcoders] ?: how to prevent users to copy text from
aTextArea?

In this situation I agree with you, that rolling your own would be 
pretty easy and could prove to be less of a hassle; however, he does 
present a nice solution to the problem at hand.

Cor wrote:
> Just interested.
> Is all this worth the hassle?
> I mean instead using a TextArea, I would go for a normal TextField and a
> custom scrollbar all in 1 movieclip.
> And set the needs.
>
> Cor.
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Muzak
> Sent: zondag 29 maart 2009 1:20
> To: Flash Coders List
> Subject: Re: [Flashcoders] ?: how to prevent users to copy text from
> aTextArea?
>
>
> The problem seems to be that TextArea uses the "enabled" value to set the
> inner textField's selectable property value.
>
>   protected function updateTextFieldType():void {
>    textField.type = (enabled && _editable) ? TextFieldType.INPUT :
> TextFieldType.DYNAMIC;
>    textField.selectable = enabled;
>    textField.wordWrap = _wordWrap;
>    textField.multiline = true;
>   }
>
> So each time the updateTextFieldType() method is called, no matter what
you
> set TextArea.textField.selectable to, it will revert to 
> the TextArea.enabled value.
> That's why :
>
>     details_ta.textField.selectable = false;
>
> doesn't really work.
>
> So it's not really a bug, just a (very) bad decision.
> Why it was done that way, who knows..
>
> To get the TextArea to work the way you want, you can extend it and
override
> the updateTextFieldType() method and add a selectable 
> property, like so:
>
> package {
>
>  import fl.controls.TextArea;
>  import flash.text.TextFieldType;
>
>  public class TextArea2 extends TextArea {
>
>   private var _selectable:Boolean = true;
>
>   override protected function updateTextFieldType():void {
>    textField.type = (enabled && _editable) ? TextFieldType.INPUT :
> TextFieldType.DYNAMIC;
>    textField.selectable = _selectable;
>    textField.wordWrap = _wordWrap;
>    textField.multiline = true;
>   }
>
>   public function get selectable():Boolean {
>    return _selectable;
>   }
>   public function set selectable(value:Boolean):void {
>    _selectable = value;
>    super.textField.selectable = value;
>    updateTextFieldType()
>   }
>
>  }
> }
>
>
> Tested with the code you provided earlier (normal TextArea on stage):
>
> package {
>
>  import flash.display.Sprite;
>  import fl.controls.TextArea;
>  import flash.text.TextField;
>  import flash.events.Event;
>  import TextArea2;
>
>  public class TestTextArea extends Sprite {
>
>   public var details_ta:TextArea;
>   public var details2_ta:TextArea2;
>
>   public function TestTextArea() {
>    addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
>    init();
>   }
>
>   private function init():void {
>    trace("TestTextArea ::: init");
>    details2_ta = new TextArea2();
>    details2_ta.selectable = false;
>    details2_ta.x = 220;
>    details2_ta.y = 10;
>    details2_ta.width = 200;
>    details2_ta.height = 100;
>    addChild(details2_ta);
>   }
>
>   private function addedToStageHandler(evt:Event):void {
>    trace("TestTextArea ::: addedToStageHandler");
>    var msg:String = "<b>Lorem ipsum dolor sit amet,</b> consectetuer
> adipiscing elit.";
>    details_ta.htmlText = msg;
>    details2_ta.htmlText = msg;
>   }
>
>  }
> }
>
> regards,
> Muzak
>
> ----- Original Message ----- 
> From: "Keith Reinfeld" <[email protected]>
> To: "'Flash Coders List'" <[email protected]>
> Sent: Saturday, March 28, 2009 10:11 PM
> Subject: RE: [Flashcoders] ?: how to prevent users to copy text from
> aTextArea?
>
>
>   
>> Then again there is this:
>>
>> package{
>> //imports
>> import fl.controls.TextArea;
>> import flash.text.TextField;
>>
>> public class CustomTextArea extends TextArea{
>> //vars
>> private var internalTextField:TextField;
>>
>> public function CustomTextArea(){
>> super();
>> internalTextField = TextField(this.textField);
>> }
>>
>> public function set selectable(b:Boolean):void{
>> internalTextField.mouseEnabled = b;
>> this.editable = b;
>> }
>>
>> public function get selectable():Boolean{
>> return internalTextField.mouseEnabled;
>> }
>> }
>> }
>>
>> Example usage:
>>
>> package{
>> //imports
>> import flash.display.MovieClip;
>> import CustomTextArea;
>>
>> public class Application extends MovieClip{
>> //vars
>> private var customTA:CustomTextArea;
>>
>> public function Application(){
>> init();
>> //addEventListener(KeyboardEvent.KEY_DOWN,
>> onUpArrow);
>> }
>>
>> private function init():void{
>> customTA = new CustomTextArea();
>>
>> addChild(customTA);
>> customTA.x = 0;
>> customTA.y = 0;
>> customTA.width = 150;
>> customTA.height = 90;
>> customTA.htmlText = "<font color='#0000FF'><b>Lorem
>> ipsum dolor sit amet,</b> consectetuer adipiscing elit.</font><font
>> color='#0000FF'><b>Lorem ipsum dolor sit amet,</b> consectetuer
adipiscing
>> elit.</font><font color='#0000FF'><b>Lorem ipsum dolor sit amet,</b>
>> consectetuer adipiscing elit.</font><font color='#0000FF'><b>Lorem ipsum
>> dolor sit amet,</b> consectetuer adipiscing elit.</font>";
>>
>> trace("customTA.selectable =",customTA.selectable);
>> customTA.selectable = false;
>> trace("customTA.selectable =",customTA.selectable);
>> }
>> }
>> }
>>
>> HTH
>>
>> Regards,
>>
>> -Keith
>>     
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.5.278 / Virus Database: 270.11.31/2028 - Release Date: 03/28/09
> 07:16:00
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
>   
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.5.278 / Virus Database: 270.11.31/2028 - Release Date: 03/28/09
07:16:00

_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to