Показать сообщение отдельно

ЗАДАНИЕ ROA
  #47  
Старый 21.12.2008, 20:15
Аватар для N19hTW0lF
N19hTW0lF
Участник форума
Регистрация: 11.07.2007
Сообщений: 292
Провел на форуме:
2131521

Репутация: 512
По умолчанию ЗАДАНИЕ ROA

ЗАДАНИЕ ROA
ЗАДАНИЕ: Flash(AS 3) Tower-Defence: просто массив объектов Points(x, y), по которым движется тело. Анимация этого тела.
New flash AS3 file,в Properties пищем Class: Antichatflash
и создадим новый .as файл с этим кодом:
PHP код:
package  
{
    
import flash.display.*;
    
import flash.events.Event;
    

    public class 
antichatflash extends MovieClip
    
{
        private var 
i:intj:intt:Numbercir:SpritecirSh:Shape,
        
_x:int_y:int_x1:int_y1:int_x2:int_y2:int;
        private const 
ANGLE_COR:Number 180 Math.PI;
        public function 
antichatflash() 
        {
            
_x 0;
            
_y 0;
            
_x1 100;
            
_y1 200;
            
_x2 0;
            
_y2 400;
            
graphics.lineStyle(0);
            
graphics.moveTo(_x,_y);
            
graphics.curveTo(_x1_y1_x2_y2);

            
cir = new Sprite();
            
addChild(cir);
            
cirSh = new Shape();
            
cirSh.graphics.lineStyle(0);
            
cirSh.graphics.drawRect(0,10,20,100);
            
cir.addChild(cirSh);
            
cirSh.x=-50;
            
cirSh.= -5;
            
addEventListener(Event.ENTER_FRAMEenterFrameFunc);
        }
        private function 
enterFrameFunc(evt:Event):void {
            
i++;
            
i/100;
            
cir.bezier3(_x,_x1,_x2,t);
            
cir.bezier3(_y,_y1,_y2,t);
            if (
i>1) {
                
cir.rotation returnRotation(
                        
bezier3(_x,_x1,_x2,t)-bezier3(_x,_x1,_x2,(i-1)/100),
                        
bezier3(_y,_y1,_y2,t)-bezier3(_y,_y1,_y2,(i-1)/100));                                    
            }
            if (
i>100) {
                
i=0;
            }
        }
        private function 
returnRotation(myX:int,myY:int):Number {
            var 
aC:Number=myY;
            var 
cB:Number=myX;
            var 
aB:Number;
            
aB=Math.sqrt(aC*aC+cB*cB);
            var 
aBC:Number=Math.asin(aC/aB);
            var 
rez:int;
            
rez aBC*180/Math.PI;
            if (
aC<0rez 360+aBC*ANGLE_COR;        
            if (
cB 0) {
                
rez 180-aBC*ANGLE_COR;
                if (
aC 0rez 180 aBC ANGLE_COR;
                }
            return 
rez;
        }
        private function 
bezier3(p0:int,p1:int,p2:int,t:Number):Number {
            return (
1-t)*(1-t)*p0+2*t*(1-t)*p1+t*t*p2;
        }

    }
    

вот потом CTRL+ENTER.
Смотрим тут:http://redu.uz/antichatflash.html
Исходник:redu.uz/antichat.rar

Последний раз редактировалось N19hTW0lF; 21.12.2008 в 22:06..
 
Ответить с цитированием