2011-01-06 6 views
0

私はこのコードを持っている:([i]を.selectable = falseをmcArray;)なぜhtmltextboxプロパティ.selectable = false does notはactionscript 3で動作しますか?

function displayHTML(htmlText:String):void 
    { 
    var mcArray:Array = new Array(); 

    for (var i:int=0; i<20; i++) { 
     var caja1:HTMLTextBlock = new HTMLTextBlock(); 
     dragMe.addChild(caja1); 
     mcArray[i] = caja1; 
    } 

    for (var i:int=0; i<20; i++) { 
    mcArray[i].blockWidth = 720; 
    mcArray[i].textStyleSheet = textStyleSheet; 
    mcArray[i].setHTML(htmlText); 
    mcArray[i].selectable = false; 
    mcArray[i].x = 0; 
    mcArray[i].y = i*(mcArray[i].height+40); 
    } 
    } 

しかし、プロパティ選択を私が望むように動作していないしているようだ、フラッシュコンソールは、このエラーを与える:TypeError例外:エラー#1010 :用語は定義されておらず、プロパティもありません。

コードの行がなければ、すべて正常に動作しますが、ユーザーはテキストを選択したくありません。

アイデア?

答えて

2

この質問は、私が書いたこのチュートリアルからHTMLTextBlockクラスに関してれる: http://active.tutsplus.com/tutorials/design/master-html-formatted-text-in-flash/

をターゲットにしようとしているテキストフィールドは、実際にHTMLTextBlockクラスの子です。あなたがしようとしていることを達成するには、いくつかの方法があります。最善の方法は、プロパティを設定するHTMLTextBlockクラスに新しいメソッドを追加することです。

はsetHTML()メソッドの後に、このメソッドを追加します。次に

public function setSelectable(value:Boolean):void 
{ 
    htmlTextField.selectable = value; 
} 

、あなたのdisplayHTML機能で、操作を行います。

mcArray[i].setSelectable(false); 
+0

を私は今、このエラーが出る:シーン1、レイヤー 'レイヤー1' 、Frame 1、Line 87 \t 1119:静的型HTMLTextBlockを持つ参照によって、未定義の可能性のあるプロパティへのアクセスを選択できます。 – DomingoSL

+0

HTMLTextBlockクラス内のTextFieldにselectableプロパティを設定してください.HTMLTextBlock自体ではなく – johnpolacek

1

HTMLTextBlockはコアクラスではありませんか? TextFieldを拡張するか、TextFieldをラップするかどうかは、テキストフィールドプロパティが存在する場合はハンドルを取得し、そこに選択可能フラグを設定する必要があります。

関連する問題