DuplicateMovieClipを使ってみようDuplicateMovieClipを使うことによって、作成したSWFSpriteやSWFShapeなどの オブジェクトを複製することかせでせます。以前に作成したDragAndDropを作り直したもの。
class DragAndDrop extends NewPrimitive
{
function DragAndDrop()
{
$this->NewPrimitive();
$this->addObject($this->_object,"DragAndDrop");
$this->addAction(
new SWFAction("
DragAndDrop.onPress = function(){this.startDrag('');};
DragAndDrop.onRelease = function(){this.stopDrag('');};
"),"DragAndDrop"
);
$this->compire();
}
function _object()
{
$this->_object = new SWFShape();
$this->_object->setRightFill(255,0,255);
$this->_object->setLine(1,100,200,255);
$this->_object->movePenTo(25,0);
for($i = 1; $i<10;$i++)
{
$this->_object->drawLine(
25*cos( deg2rad( 40*$i )) - 25*cos( deg2rad( 40*($i-1) )) ,
-25*sin( deg2rad( 40*$i )) + 25*sin( deg2rad( 40*($i-1) ))
);
}
}
}
クリックされたときにObjectの複製を作成するオブジェクト
class DuplicateButton extends NewPrimitive
{
function DuplicateButton()
{
$this->NewPrimitive();
$this->addObject($this->_object,"DuplicateButton");
$this->addAction(
new SWFAction
("
DuplicateButton.onLoad = function()
{
i = 10;
};
DuplicateButton.onPress= function()
{
item = _parent.item.duplicatemovieclip('mc'+i,i+10);
i++;
item._x = this._x;
item._y = this._y;
};
"),"DuplicateButton");
$this->compire();
}
function _object()
{
$this->_object = new SWFShape();
$this->_object->setRightFill(255,100,155);
$this->_object->drawCircle(30);
}
}
Duplicateボタンと複製されるオブジェクトの追加。
class Universe extends NewPrimitive
{
var $_button;
function Universe()
{
$this->NewPrimitive();
$drag = new DragAndDrop();
$dupl = new DuplicateButton();
$this->addObject($dupl->Layer(),"button");
$this->addObject($drag->Layer(),"item");
$this->addAction(new SWFAction("button._y = 400;"),"position");
$this->compire();
}
}
作成したファイル
|