Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   проблема с твинами в пользовательских классах (http://www.flasher.ru/forum/showthread.php?t=133870)

Dimask 15.12.2009 11:12

проблема с твинами в пользовательских классах
 
Здравствуйте, осваиваю пользовательские классы, натолкнулся на такую проблемую что не работают твины, или я что то не так оформляю, подскажите пожалуйста в чем проблема, ставлю такой код в файле Twin.as
CODE

Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
class Twin extends MovieClip{
  var g:Tween;
  var b:MovieClip;
 function Twin(b){
  var g:Tween=new Tween (b, "_x", None.easeOut, 200, 700, 2,true)
  }
}

и этот мувик b даже с места не трогается!

Hauts 15.12.2009 12:24

А как запускаете? Код покажите.

Dimask 17.12.2009 05:34

все, разобрался уже, все норм двигается) продолжаю тему, написал класс, но есть проблема сеттаймаут не работает, копмилятор выдает "There is no method with the name 'setTimeout'." если ставлю вместо него просто саму функцию roadOfBus, все равно не пашет, может объясните почему, экземпляр создаю как
Код AS1/AS2:

var b1:TweenOfBus = new TweenOfBus(bus,vB,t,r);

Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
class TweenOfBus extends MovieClip{
 
var bus_tw:Tween;
 
function TweenOfBus (mc1:MovieClip,v1,i1,j1:Number){
mc1._x=_root["st"+0]._x;
mc1._y=_root["st"+0]._y;
roadOfBus(mc1,v1,i1,j1);}
 
//запускаем функцию движения
function roadOfBus (mc:MovieClip, v,i,j:Number){ 
j=i+1;
//определяем длину пути между двумя станциями
  var k=Math.sqrt(Math.pow((_root["st"+j]._x - _root["st"+i]._x), 2)+Math.pow((_root["st"+j]._y - _root["st"+i]._y), 2));
  var bus_tw =new Tween(mc, "_x", None.easeOut, _root["st"+i]._x, _root["st"+j]._x, k/v, true);
  var bus_tw =new Tween(mc, "_y", None.easeOut, _root["st"+i]._y, _root["st"+j]._y, k/v, true);
  bus_tw.onMotionFinished = function(){
 
    if (i<=14){
        i++;
      setTimeOut(roadOfBus,1000,mc,v,i,j);//!!!!не работает, почему?
 }
}
if (j==15){
 reverseOfBus(mc,v,i,j);// 
  }
}


Жень Шень 17.12.2009 10:51

по setTimeout в поиск - недавно обсуждалось

Hauts 17.12.2009 15:42

Может setInterval попробуете?

Dimask 17.12.2009 20:39

не, сетинтервал не катит), а там на сколоько я понял надо прописывать, _global.setTimeout(), однако он функцю roadOfBus не видит, остальные параметры методом трассировки посмотрел, вроде норм определяются, и в чем теперь проблема, мб изза рекурсии, можно ли её вообще в пользовательских классах применять? когда код был на фрейме в самом фла файле, норм работало, подскажите, а?

smailik 17.12.2009 20:48

У меня тоже порблема с
Код AS1/AS2:

import mx.transitions.Tween; 
import mx.transitions.easing.*;

Пытаюсь вставить такой код
Код AS1/AS2:

function alpha0 () {
item = "q" + n;
        var MYTween:Tween = new Tween(item, "_alpha", Strong.easeOut, 0,100, 3, true);
}

"n" присваевается при нажатии кнопки, имена мувиков соответсвенно q1,q2,q3 и. т.д.
но если прописать так то работает:
Код AS1/AS2:

function alpha0 () {
        var MYTween:Tween = new Tween(q1, "_alpha", Strong.easeOut, 0,100, 3, true);
}

Как мне правильно сделать первый вариант, а не к каждому мувику прописывать Твиин?

Dimask 17.12.2009 21:07

smailik, прописать как item=_root["q"+n]; должно сработать)

smailik 17.12.2009 22:24

Спасибо, помогло =)
А можно как нибудь не писать _root или _parent перед скобками?

Dimask 17.12.2009 23:23

можно еще q1,q2,q3 и тд определить как массив, и присваивать переменной итем, элементы этого массива
ЗЫ а на мой вопрос может кто нибудь ответить?(
-------------------------------------------------------------------------------------------------------------------------------------
Всё, сам разобрался, нужно было уже к функции roadOfBus обращаться как к методу искомого класса, а я обращался как к функции, так что вопрос закрыт)


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

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