片持ち梁・分布荷重

by aki8fall
壁書いた(片持ち梁・分布荷重)
同時に三角が動かない
端っこが変な動きをする
クリックした後マウスを動かすと図形が変わる
2回目以降の動きがおかしい
クラスDock11 座標設定
♥0 | Line 211 | Modified 2010-11-24 13:50:08 | MIT License
play

ActionScript3 source code

/**
 * Copyright aki8fall ( http://wonderfl.net/user/aki8fall )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/pVPB
 */

// forked from aki8fall's forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked f
//壁書いた(片持ち梁・分布荷重)

//同時に三角が動かない
//端っこが変な動きをする
//クリックした後マウスを動かすと図形が変わる
//2回目以降の動きがおかしい

package {
//クラスDock11 座標設定
  import flash.display.Sprite;
  public class Dock11 extends Sprite {
    public function Dock11(){
    var dock : Dock = new Dock();
      dock.x = 80;
       dock.y = 150;
      addChild(dock);
    var dock2 : Dock2 = new Dock2();
      dock2.x = 80;
       dock2.y = 150;
      addChild(dock2);
    var sen1 : Sen1 = new Sen1();
      sen1.x = 95;
       sen1.y = 110;
      addChild(sen1);
    var sen2 : Sen2 = new Sen2();
      sen2.x = 55;
       sen2.y = 140;
      addChild(sen2);
    }
  }
}

import flash.display.Sprite;
import flash.events.Event;
class Sen1 extends Sprite
   {
      public function Sen1() {
          var s0:Sprite = new Sprite();          
         s0.graphics.lineStyle(1, 0xff000000);
         s0.graphics.lineTo(0, 0);
         s0.graphics.lineTo(0, 130);
         s0.graphics.endFill();
         addChild(s0);
   }
}

class Sen2 extends Sprite {
  private var iconAry : Array = new Array(6);
  public function Sen2(){
    for (var i :int = 0; i < 6; i++){
      iconAry[i] = new Sprite();
      iconAry[i].graphics.lineStyle(1,0xFF0000000);
      iconAry[i].graphics.lineTo(0, 0);
      iconAry[i].graphics.lineTo(20, -20);
      iconAry[i].graphics.endFill();
      addChild(iconAry[i]);
      iconAry[i].x = 20;
      iconAry[i].y =i*20;
    }
  }
}

//クラスDock 赤色の棒設定
import flash.display.Sprite;
import flash.events.Event;
import flash.display.SimpleButton;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.events.MouseEvent;
import fl.transitions.easing.None;
import flash.utils.Timer;
import flash.events.TimerEvent;

class Dock extends Sprite {
 private var iconAry : Array = new Array(10);
//タイマー設定Timer(1回分の時間[ms],繰り返し回数)  
  private var myTimer : Timer = new Timer(50,10);
//  private var icon : SimpleButton = new SimpleButton();
  function Dock(){
    setIcon();
   // addEventListener(Event.ENTER_FRAME, IconMove);
//    icon.
     addEventListener(MouseEvent.MOUSE_DOWN, IconMove);

  }
//動き
   private function IconMove(event:Event) : void {
    if(15 < mouseX && mouseX < 215 && 30 > mouseY && mouseY > 0){
    myTimer.start();
    myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
    } 
    else {
      for (var i :int = 0; i < 10; i++){
        iconAry[i].y=0; 
        //(1 - iconAry[i].y)/1.5;
      }
      }
 // }
   }
// タイマーイベントの記述開始
private var test :Number;
private function timerHandler(e:TimerEvent):void{
     for (var i :int = 0; i < 10; i++){
     test = i*i*mouseX*0.01/10;
     iconAry[i].y = iconAry[i].y+test;
        }
}
//タイマーイベントの記述終了
  private function setIcon():void {
    for (var i : int = 0; i < 10; i++){
      iconAry[i] = new Icon(i);
      iconAry[i].x = i * 20 +15;
      addChild(iconAry[i]);
    }
 //   addEventListener(Event.ENTER_FRAME, IconMove);
  }

}
// クラスIcon 棒の動き
class Icon extends Sprite {
  private var icon : SimpleButton = new SimpleButton();
  function Icon(i : int) {
    var upImg : Sprite = upIcon();
    var overImg : Sprite = upIcon();
    var label : TextField = makeLabel(i);
    overImg.addChild(label);
    icon.upState = upImg;
    icon.overState = overImg;
    icon.downState = overImg;
    icon.useHandCursor = true;
    icon.hitTestState = upImg;
    addChild(icon);
  }
  private function upIcon() : Sprite {    //upIcon三角形
    var Img : Sprite = new Sprite();
    Img.graphics.lineStyle(1, 0xff0);
    Img.graphics.beginFill(0xff0);
    Img.graphics.moveTo(0, 0);
    Img.graphics.lineTo(20, 0);
    Img.graphics.lineTo(0, 30);
    Img.graphics.endFill();
    return Img;
  }
  private function makeLabel(i : int) : TextField {    //makeLabel文字の表示
    var tf : TextField = new TextField();
    tf.text = "座標" + i;
    tf.width = 40;
    tf.x = -10;
    tf.y = -30;
    var fmt:TextFormat = new TextFormat();
    fmt.color = 0x000000;
    fmt.size = 12;
    fmt.align = TextFormatAlign.CENTER;
    tf.setTextFormat(fmt);
    return tf;
  }
}

//クラスDock2 緑色の設定

import flash.display.Sprite;           //Spriteの反対はMovieClip
import flash.events.Event;
import flash.display.SimpleButton;     //矢印が指になる
import flash.text.TextField;           //文字
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.events.MouseEvent;        //マウスイベント
import mx.effects.Tween; 

class Dock2 extends Sprite { //こんたにはばか
  private var iconAry : Array = new Array(10);
//タイマー設定Timer(1回分の時間[ms],繰り返し回数)  
  private var myTimer : Timer = new Timer(50,10);
//  private var icon : SimpleButton = new SimpleButton();
  function Dock2(){
    setIcon();
   // addEventListener(Event.ENTER_FRAME, IconMove);
//    icon.
     addEventListener(MouseEvent.MOUSE_DOWN, IconMove);

  }
//動き
   private function IconMove(event:Event) : void {
    if(15 < mouseX && mouseX < 215 && 30 > mouseY && mouseY > 0){
    myTimer.start();
    myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
    } 
    else {
      for (var i :int = 0; i < 10; i++){
        iconAry[i].y=0; 
        //(1 - iconAry[i].y)/1.5; //たま
      }
      }
 // }
   }
// タイマーイベントの記述開始
private var test :Number;
private function timerHandler(e:TimerEvent):void{
     for (var i :int = 0; i < 10; i++){
     test = (i+0.5)*(i+0.5)*mouseX*0.01/10;
     iconAry[i].y = iconAry[i].y+test;
        }
}
//タイマーイベントの記述終了
  private function setIcon():void {
    for (var i : int = 0; i < 10; i++){
      iconAry[i] = new Icon2(i);
      iconAry[i].x = i * 20 +15;
      addChild(iconAry[i]);
    }
 //   addEventListener(Event.ENTER_FRAME, IconMove);
  }

}
// クラスIcon2 棒の動き
class Icon2 extends Sprite {
  private var icon : SimpleButton = new SimpleButton();
  function Icon2(i : int) {
    var upImg : Sprite = upIcon();
    var overImg : Sprite = upIcon();
    var label : TextField = makeLabel(i);
    overImg.addChild(label);
    icon.upState = upImg;
    icon.overState = overImg;
    icon.downState = overImg;
    icon.useHandCursor = true;
    icon.hitTestState = upImg;
    addChild(icon);
  }
  private function upIcon() : Sprite {    //upIcon三角形
    var Img : Sprite = new Sprite();
    Img.graphics.lineStyle(1, 0xff00);
    Img.graphics.beginFill(0xff00);
    Img.graphics.moveTo(20, 0);
    Img.graphics.lineTo(20, 30);
    Img.graphics.lineTo(0, 30);
    Img.graphics.endFill();
    return Img;
  }
  private function makeLabel(i : int) : TextField {    //makeLabel文字の表示
    var tf : TextField = new TextField();
    tf.text = "(" + mouseX + "," + mouseY + ")";
    tf.width = 40;
    tf.x = -10;
    tf.y = -30;
    var fmt:TextFormat = new TextFormat();
    fmt.color = 0x000000;
    fmt.size = 12;
    fmt.align = TextFormatAlign.CENTER;
    tf.setTextFormat(fmt);
    return tf;
  }
}