Форум 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=142274)

nbs1q 16.07.2010 19:00

Помогите с логикой работы
 
Ув. флешеры, помогите разобраться с логикой работы!
У меня есть флешка, которая содержит в себе n картинок.
Я хочу создать такую анимацию с помощью AS2:
1. Изначально все картинки становятся черно-белыми;
2. При наведении на флешку, все картинки становятся цветными;
3. В обычном режиме картинки в произвольном порядке загораются цветом и гаснут.

Вот с первыми 2 пунктами всё нормально. А с 3 - никак не могу разобраться.
Причина - не могу понять "как это должно работать" на уровне логики.

Вот собственно код флешки:
Код AS1/AS2:

import ru.etcs.filters.*
import mx.transitions.Tween
import mx.transitions.easing
 
var tweenLength:Number = 0.7;
var isInside:Boolean = false;
var ran:Number;
 
for(var i = 1;i<=8;i++){
    this['mc'+i].sat = -100
    this['mc'+i].mc.index = i   
    this['mc'+i].mc.onRollOver = miss
    this['mc'+i].mc.onRollOut = dissappear
    this['mc'+i].mc.onRelease = tweenRand
    this['mc'+i].mc.onEnterFrame = Random
    this['mc'+i].onEnterFrame = doEnterFrame
 
}
 
function miss () {
for(var i = 1;i<=8;i++){
    this._parent.myTween.play()
    _root['mc'+i].myTween.continueTo(0, tweenLength);
    }
}
 
function dissappear () {
    for(var i = 1;i<=8;i++){
          if(this.index!=i){
          tweenMeOut(_root['mc'+i])
          }else{
          tweenMeIn(_root['mc'+i])   
              }
    }
}
function tweenMeOut (mc) {
    mc.myTween = new Tween(mc, "sat", None.easeOut,mc.sat, -100 , tweenLength, true);
}
function tweenMeIn (mc) {
    mc.myTween = new Tween(mc, "sat", None.easeOut,mc.sat, -100 , tweenLength, true);
}
 
function Random(mc){
        ran = random(8)+1;
        trace(ran);
        i = ran;
}
 
function tweenRand (mc) {
        var t:Number=0;
        _root['mc'+i].myTween.continueTo(100, tweenLength);
        t = getTimer()/1000;
        trace(t);
        if(t>15){
        _root['mc'+i].myTween.continueTo(-100, tweenLength);
        }
}
 
function doEnterFrame () {
var color:ColorFilter = new ColorFilter();
    var saturation:Number = color.saturation;
        color.saturation = this.sat;
    this.filters = [color];
}


Функции TweenRand и Random - это попытки выполнить пункт №3, но работаю они весьма некорректно. (TweenRand обрабатывается onRelease умышленно, для удобства корректировки ошибок)

Надеюсь на вашу помощь!
Заранее благодарен.


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

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