目次

ドラッグアンドドロップ

<dragstate>

ビューをドラッグアンドドロップできるようにするには、<dragstate>タグを使います。

赤四角をドラッグアンドドロップできます。

この内容を表示するためには Adobe Flash Plugin が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee" width="500"> 
   <view width="50" height="50" bgcolor="0xff0000"
         onmousedown="this.dr.apply()"
         onmouseup="this.dr.remove()">
      <dragstate name="dr"/>
   </view>
</canvas>

ドラッグ可能範囲を限定する

<dragstate>の属性、drag_min_x、drag_max_x、drag_min_y、drag_max_yを使って、ドラッグ可能な範囲(x、yの最小値と最大値)を指定できます。

サンプルでは、赤四角をドラッグしても青の背景から飛び出しません。

この内容を表示するためには Adobe Flash Plugin が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee" width="500"> 
  <view bgcolor="blue" align="center" valign="middle" width="400" height="200">
     <view bgcolor="red" width="50" height="50" 
          onmousedown="this.dr.apply()"
          onmouseup="this.dr.remove()">
       <dragstate name="dr" 
           drag_min_x="0" 
           drag_max_x="$once{parent.width - this.width}" 
           drag_min_y="0" 
           drag_max_y="$once{parent.height - this.height}"/>
     </view>
  </view>
</canvas>

ドラッグ中に影をつける

この内容を表示するためには Adobe Flash Plugin が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <class name="sq"
      onmousedown="this.dr.apply();this.doDrop();this.bringToFront();"
      onmouseup="this.dr.remove();this.noDrop()">
    <dragstate name="dr"/>
    <view width="50" height="50" bgcolor="${parent.bgcolor}"/>
    <method name="doDrop">
      var filter = new flash.filters.DropShadowFilter();
      var mc = this.getMCRef();
      mc.filters = new Array(filter);
    </method>
    <method name="noDrop">
      var mc = this.getMCRef();
      mc.filters = new Array();
    </method>
  </class>
 
  <sq bgcolor="red"/>
  <sq x="60" bgcolor="yellow"/>
  <sq x="120" bgcolor="blue"/>
</canvas>