Flex

preventDefault();

[`evernote` not found]
LINEで送る
Pocket

要するにタイトルにある、preventDefault()があるよ、っていうことを残したかっただけですが、便利ですね。

例えば、DataGridへデータをドロップするとして、

<mx:DataGrid dropEnabled=”true” 〜
とすれば動作はしますが、
デフォルトのその動作に加えて追加の処理をしたい場合、(このDataGridのdataProviderに新たにデータを追加したい等)
デフォルトの動作がむしろ邪魔になります。(デフォルトの動作+自分で設定した動作、となり、二重に処理をしてしまう)

その時に、preventDefaultを記述しておけば、二重動作を防止できます。
例としてのソースはこんなところでいかがでしょうか?(勢い任せにかいたので、おかしなところがあったらごめんなさい。)

<mx:Application>
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.events.DragEvent;

[Bindable] public var data_c:XMLListCollection;

private function customDrop(e:DragEvent):void{
//これでドロップ時のデフォルトの動作を無効にできます。
e.preventDefault();
//以下、動作させたい処理

}

]]>
</mx:Script>
<mx:DataGrid id=”dg” dataProvider=”{data_c}” dropEnabled=”true” dragDrop=”customDrop(event)”>
<mx:columns>
<mx:DataGridColumn …./>
<mx:DataGridColumn …./>
<mx:DataGridColumn …./>
</mx:columns>
</mx:DataGrid>

</mx:Application>

2007年9月9日00:05

Leave a Reply

Your email address will not be published.

CAPTCHA