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