Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Уменьшение по вертикали, пропорционально меняя координаты линий (http://www.flasher.ru/forum/showthread.php?t=175092)

54321go 09.02.2012 16:46

Уменьшение по вертикали, пропорционально меняя координаты линий
 
Код AS3:

import flash.display.Sprite;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.Bitmap;
import flash.events.Event;
 
 
 
 
var bmd:BitmapData = new BitmapData(100, 150, false, 0xFFCC00);
for(var i:int=0; i<10; i++){
var rect:Rectangle = new Rectangle(0, i*15, 150, 3);
bmd.fillRect(rect, 0xFF0000);
}
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);
 
 
var yy1Left:Number=80
var yy1Right:Number=60
 
 
var line1:Sprite=new Sprite();
line1.graphics.lineStyle(2,0x0000FF)
line1.graphics.moveTo(0,yy1Left)
line1.graphics.lineTo(100,yy1Right)
line1.graphics.endFill();
addChild(line1)
 
 
var yy2Left:Number=20;
var yy2Right:Number=40;
var line2:Sprite=new Sprite();
line2.graphics.lineStyle(2,0x0000FF)
line2.graphics.moveTo(0,yy2Left)
line2.graphics.lineTo(100,yy2Right)
line2.graphics.endFill();
addChild(line2)
 
 
var bmOldSize:Number=150;
this.addEventListener(Event.ENTER_FRAME,eFrame)
function eFrame(e:Event){
        bm.height-=1;
        var resizeNum:Number=bmOldSize-bm.height;
        yy1Left=
        yy1Right=
        line1.graphics.clear()
        line1.graphics.lineStyle(2,0x0000FF)
        line1.graphics.moveTo(0,yy1Left)
        line1.graphics.lineTo(100,yy1Right)
        line1.graphics.endFill();
 
        yy2Left=
        yy2Right=
 
        line2.graphics.clear();
        line2.graphics.lineStyle(2,0x0000FF)
        line2.graphics.moveTo(0,yy2Left)
        line2.graphics.lineTo(100,yy2Right)
        line2.graphics.endFill();
        addChild(line2)
 
}



Уменьшается или увеличивается по вертикали bm, поверх него линии(например line1 и line2), надо в координаты по Y (yy1Left,yy1Right и yy2Left,yy2Right) прописать функцию чтобы менялись координаты пропорционально уменьшению, словно линии находятся в битмапе(bm). Засунуть все в клип и уменьшать не получится.

Добавлено через 8 часов 20 минут
Разобрался, вот пример для одной точки, если вдруг кому-то понадобится
Код AS3:

yy1Right=yy1Right+((yy1Right/bm.height)*resizeNum)



Часовой пояс GMT +4, время: 04:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.