Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.04.2009, 18:08
Lilysik вне форума Посмотреть профиль Отправить личное сообщение для Lilysik Найти все сообщения от Lilysik
  № 1  
Ответить с цитированием
Lilysik

Регистрация: Apr 2009
Сообщений: 3
По умолчанию помогите перевести на as3

Начала изучение с as3 помогите перевести код пожалуйста если это не сильно заморочно
Код AS1/AS2:
i = 0;
mousex = getProperty("/m", _x);
mousey = getProperty("/m", _y);
while (Number(i)<=Number(num)) {
	set("/p" add i add ":xm2", (_level0:mousex-getProperty ("/p" add i, _x )+random(2*fr)-fr)/(50-fmouse));
	set("/p" add i add ":ym2", (_level0:mousey-getProperty ("/p" add i, _y )+random(2*fr)-fr)/(50-fmouse));
	a = eval("/p" add i add ":a");
	set("/p" add i add ":xm", eval("/p" add i add ":xm")*(1-a)+eval("/p" add i add ":xm2")*a);
	set("/p" add i add ":ym", eval("/p" add i add ":ym")*(1-a)+eval("/p" add i add ":ym2")*a);
	setProperty("/p" add i, _x, getProperty ("/p" add i, _x )+eval("/p" add i add ":xm"));
	setProperty("/p" add i, _y, getProperty ("/p" add i, _y )+eval("/p" add i add ":ym"));
	setProperty("/p" add i, _xscale, 100);
	setProperty("/p" add i, _yscale, 100);
	rot = getProperty ("/p" add i, _rotation)+(eval("/p" add i add ":xm")+eval("/p" add i add ":ym"));
	if (Number(rot)>360) {
		rot = rot-360;
	}
	if (Number(rot)<0) {
		rot = Number(rot)+360;
	}
	setProperty("/p" add i, _rotation, getProperty ("/p" add i, _rotation)+(eval("/p" add i add ":xm")+eval("/p" add i add ":ym"))/2);
	i = Number(i)+1;
}

Старый 09.04.2009, 18:27
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Перевод без осмысления не поможет.
Словарь.
__________________
Griver

Старый 09.04.2009, 18:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, что-то в этом духе...
Код AS3:
var num:int = numChildren; // откуда берутся клипы, которые нужно трансформировать?
var i:int;
var m:MovieClip = getChildByName("m");
var mousex:Number = m.x;
var mousey:Number = m.y;
var clip:MovieClip;
var xm2:Number;
var ym2:Number;
var fmouse:Number; // что это? Нужно задать начальное значение.
var fr:Number; // что это? Нужно задать начальное значение.
var a:Number;
var rot:Number;
while (i++ <= num)
{
	clip = getChildByName("p" + i);
	clip.xm2 = mousex - clip.x + Math.random(2 * fr) - fr) / (50 - fmouse));
	clip.ym2 = mousex - clip.y + Math.random(2 * fr) - fr) / (50 - fmouse));
	a = clip.a;
	clip.xm = clip.xm * (1 - a) + clip.xm2 * a;
	clip.ym = clip.ym * (1 - a) + clip.ym2 * a;
	clip.x += clip.xm;
	clip.y += clip.ym;
	clip.scaleX = 1;
	clip.scaleY = 1;
	rot = Math.abs(clip.rotation + clip.xm + clip.ym) % 360;
	clip.rotation = rot / 2; 
}
Наугад... я не понял, что этот ваш скрипт делал... да и то, что я написал трудно назвать АС3 бред какой-то с созданием динамических свойств у клипов для каких-то непонятных мне рассчетов... легче выбросить АС1 вариант и просто написать по-новой...
__________________
Hell is the possibility of sanity

Старый 09.04.2009, 19:12
Lilysik вне форума Посмотреть профиль Отправить личное сообщение для Lilysik Найти все сообщения от Lilysik
  № 4  
Ответить с цитированием
Lilysik

Регистрация: Apr 2009
Сообщений: 3
спасибо огромное, исходник прикрепляю.
Пыталась сделать класс что то типа
Код AS3:
dynamic public class Roy extends MovieClip {
 
		    //Количество частиц
            var  num = 15;
            //Сила разлёта от мышки
            var fr = 700;
           //Min и Max ускорения
            var  mina = 5;
            var  maxa = 15;
           //Сила притяжения мышки (max=50)
            var fmouse = 30;
            var  i = 1;
			//var myxa:Myxa;
			var main;
			var myxa:Array = new Array(16);
 
 
 
		public function Roy(a){ 
		main = a;
 
      while (i<=num) {
 
		  myxa[i] = new Myxa;
		  myxa[i].x = Math.random()*(0-550)+550;
		  myxa[i].y = Math.random()*(0-400)+400;
		  myxa[i].rotation = Math.random()*(0-360)+360;
		  main.addChild(myxa[i]);
 
	     // set("/p" add i add ":a", (Number(random(maxa-mina))+Number(mina))/100);
	      i = i+1;
           }
      myxa.startDrag(true);
		}
а потом по таймеру думаю тот кусочек кода в функцию вставить....
вот как то так
спасибо ещё раз,буду дальше разбираться))))
Вложения
Тип файла: zip 171_015.zip (19.3 Кб, 48 просмотров)

Старый 10.04.2009, 11:57
Lilysik вне форума Посмотреть профиль Отправить личное сообщение для Lilysik Найти все сообщения от Lilysik
  № 5  
Ответить с цитированием
Lilysik

Регистрация: Apr 2009
Сообщений: 3
Что то не так(((
Код AS3:
package{
 
 
	import flash.display.MovieClip;
	import flash.utils.Timer;      
        import flash.events.TimerEvent;
 
	dynamic public class Roy extends MovieClip {
 
		    //Количество частиц
            var  num = 15;
            //Сила разлёта от мышки
            var fr = 700;
           //Min и Max ускорения
            var  mina = 5;
            var  maxa = 15;
           //Сила притяжения мышки (max=50)
            var fmouse = 30;
            var  i = 0;
			var main;
			var myxa:Array = new Array(16);
			public var	clip;
			var mainTimer;
 
 
 
		public function Roy(a){ 
		main = a;
 
      while (i<=num) {
 
		  myxa[i] = new Myxa;
		  myxa[i].x = Math.random()*(0-550)+550;
		  myxa[i].y = Math.random()*(0-400)+400;
		  main.addChild(myxa[i]);
 
	      myxa[i].ar= Number(Math.random()*(maxa-mina)+mina)/100;
	      i = i+1;
 
           }
 
	    mainTimer = new Timer(150);
	    mainTimer.addEventListener("timer", go);
	    mainTimer.start();
		}
 
	public function go(e:TimerEvent){
	     var i = 0;
             var mousex = mouseX;
             var mousey = mouseY;
 
        while (i<=num) {
	     clip = myxa[i];
	     clip.xm2 = ((mousex - clip.x) + Math.random()*(2*fr)-fr) / (50 - fmouse);
	     clip.ym2 = ((mousey - clip.y) + Math.random()*(2*fr)-fr) / (50 - fmouse);
 
   var	ar = clip.ar;
	     clip.xm = clip.xm * (1 - ar) + clip.xm2 * ar;
	     clip.ym = clip.ym * (1 - ar) + clip.ym2 * ar;
	     clip.x += clip.xm;
	     clip.y += clip.ym;
 
	 trace(clip.xm);//здесь ошибка,но не могу разобраться(((
 
	i = i+1;
 
}
 
}
 
 
 
 
 
 
 
 
 
 
	}
}
Добавлено через 3 часа 45 минут
Осталась одна загвоздка
Код AS1/AS2:
	set("/p" add i add ":xm", eval("/p" add i add ":xm")* (1-a)+eval("/p" add i add ":xm2")*a);
	set("/p" add i add ":ym", eval("/p" add i add ":ym")*(1-a)+eval("/p" add i add ":ym2")*a);
эти строчки никак неосилить
Код AS3:
	clip.xm = clip.xm * (1 - a) + clip.xm2 * a;
	clip.ym = clip.ym * (1 - a) + clip.ym2 * a;
так неработает((


Последний раз редактировалось Lilysik; 10.04.2009 в 15:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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