文字

SWFButton::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::__constructCreates a new Button

说明

SWFButton::__construct ( void )
Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Creates a new Button.

范例

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Example #1 Usual interactions with buttons

<?php

$f 
= new  SWFFont ( "_serif" );

$p  = new  SWFSprite ();

function 
label ( $string
{
  global 
$f ;

  
$t  = new  SWFTextField ();
  
$t -> setFont ( $f );
  
$t -> addString ( $string );
  
$t -> setHeight ( 200 );
  
$t -> setBounds ( 3200 200 );
  return 
$t ;
}

function 
addLabel ( $string
{
  global 
$p ;

  
$i  $p -> add ( label ( $string ));
  
$p -> nextFrame ();
  
$p -> remove ( $i );
}

$p -> add (new  SWFAction ( "stop();" ));
addLabel ( "NO ACTION" );
addLabel ( "SWFBUTTON_MOUSEUP" );
addLabel ( "SWFBUTTON_MOUSEDOWN" );
addLabel ( "SWFBUTTON_MOUSEOVER" );
addLabel ( "SWFBUTTON_MOUSEOUT" );
addLabel ( "SWFBUTTON_MOUSEUPOUTSIDE" );
addLabel ( "SWFBUTTON_DRAGOVER" );
addLabel ( "SWFBUTTON_DRAGOUT" );

function 
rect ( $r $g $b
{
  
$s  = new  SWFShape ();
  
$s -> setRightFill ( $s -> addFill ( $r $g $b ));
  
$s -> drawLine ( 600 0 );
  
$s -> drawLine ( 0 600 );
  
$s -> drawLine (- 600 0 );
  
$s -> drawLine ( 0 , - 600 );

  return 
$s ;
}

$b  = new  SWFButton ();
$b -> addShape ( rect ( 0xff 0 0 ),  SWFBUTTON_UP  SWFBUTTON_HIT );
$b -> addShape ( rect ( 0 0xff 0 ),  SWFBUTTON_OVER );
$b -> addShape ( rect ( 0 0 0xff ),  SWFBUTTON_DOWN );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(1);" ),
          
SWFBUTTON_MOUSEUP );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(2);" ),
      
SWFBUTTON_MOUSEDOWN );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(3);" ),
      
SWFBUTTON_MOUSEOVER );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(4);" ),
      
SWFBUTTON_MOUSEOUT );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(5);" ),
      
SWFBUTTON_MOUSEUPOUTSIDE );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(6);" ),
      
SWFBUTTON_DRAGOVER );

$b -> addAction (new  SWFAction ( "setTarget('/label'); gotoFrame(7);" ),
      
SWFBUTTON_DRAGOUT );

$m  = new  SWFMovie ();
$m -> setDimension ( 4000 3000 );

$i  $m -> add ( $p );
$i -> setName ( "label" );
$i -> moveTo ( 400 1900 );

$i  $m -> add ( $b );
$i -> moveTo ( 400 900 );

header ( 'Content-type: application/x-shockwave-flash' );
$m -> output ();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Example #2 Drag example

<?php

$s 
= new  SWFShape ();
$s -> setRightFill ( $s -> addFill ( 0xff 0 0 ));
$s -> drawLine ( 1000 , 0 );
$s -> drawLine ( 0 , 1000 );
$s -> drawLine (- 1000 , 0 );
$s -> drawLine ( 0 ,- 1000 );

$b  = new  SWFButton ();
$b -> addShape ( $s SWFBUTTON_HIT  SWFBUTTON_UP  SWFBUTTON_DOWN  SWFBUTTON_OVER );

$b -> addAction (new  SWFAction ( "startDrag('/test', 0);" ),  // '0' means don't lock to mouse
      
SWFBUTTON_MOUSEDOWN );

$b -> addAction (new  SWFAction ( "stopDrag();" ),
      
SWFBUTTON_MOUSEUP  SWFBUTTON_MOUSEUPOUTSIDE );

$p  = new  SWFSprite ();
$p -> add ( $b );
$p -> nextFrame ();

$m  = new  SWFMovie ();
$i  $m -> add ( $p );
$i -> setName ( 'test' );
$i -> moveTo ( 1000 , 1000 );

header ( 'Content-type: application/x-shockwave-flash' );
$m -> output ();
?>
上一篇: 下一篇: