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

Rot pfeffer 04.11.2006 14:58

Изменение альфа канала в разных кадрах
 
Привет всем, народ, подскажите как написать такую ситуацию:
на первом кадре ставлю 4ре мувика, нужно чтобы с 1 по 10й кадр альфа канал первого мувика увеличился с 0 до 100, с 10 по 20й кадр 2го мувика и тд...

BigDan 04.11.2006 15:15

Используй Motion Tween, меньше проблем будет.

Rot pfeffer 04.11.2006 15:26

нет, Motion Tween использовать не хочу, надо программно сделать

Wolsh 05.11.2006 01:52

Ну дык запрашивай _currentframe и пиши поведение

Хемуль 05.11.2006 02:56

Вложений: 1
Пример с рекурсией (LoL) и обьектом Tween...
Код:

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

var movieClipsDissolveSpeed:Number = 10;
var movieClipsBaseName:String = "mc";
var movieClipsNumber:Number = 4;
var movieClipsLeft:Number = 100;
var movieClipsTop:Number = 100;
var movieClipsInterval:Number = 20;

var currentMovieClipX:Number = movieClipsLeft;
for (var index:Number = 1; index <= movieClipsNumber; index++)
{
        var newMovieClipName:String = movieClipsBaseName + index;
        var newMovieClip:MovieClip = this.attachMovie(newMovieClipName, newMovieClipName, this.getNextHighestDepth(), {_x:currentMovieClipX, _y:movieClipsTop});
        currentMovieClipX += newMovieClip._width + movieClipsInterval;
        newMovieClip._alpha = 0;
}

createTweenForClip(1);

function createTweenForClip(clip:Number)
{
        var clipToTweenName:String = movieClipsBaseName + clip;
        var clipToTween:MovieClip = this[clipToTweenName];
        var newTween:Tween = new Tween(clipToTween, "_alpha", None.easeNone, 0, 100, movieClipsDissolveSpeed, false);
        if (clip < movieClipsNumber)
        {
                newTween.onMotionFinished = function()
                {
                        createTweenForClip(clip + 1);
                };
        }
}

На сцену из библиотеки вставляется 4 мувиклипа и с ними уже работает скрипт.
Пример прикрепляю...

Kikasso 05.11.2006 03:18

В руте clip0, clip1, clip2 и clip3
Код:

function alphaMaster(frameNumba){
var clipId = Math.floor(frameNumba/4);
var alphaVal = frameNumba % 10 * 10 + 10;
this["clip"+clipId]._alpha = alphaVal;
if(clipId == 3 && alphaVal == 100 ) _root.onEnterFrame = null;
}
_root.onEnterFrame = alphaMaster(_root._currentframe);

Вообще-то куррентфрейм нам тут не особо нужен, можно обойтись каким-нибудь i++, да и функцию вызывать не на ентерфрейм, а по интервалу. Принцип тот же.

Kikasso 05.11.2006 03:27

В руте clip0, clip1, clip2, clip3 и все буквы ниже.
Код:

var i = 0, rate = 40;
clip0._alpha = clip1._alpha = clip2._alpha = clip3._alpha = 0;
function alphaMaster(){
clearInterval( alphaInt );
var clipId = Math.floor( i/4 );
var alphaVal = ( 1 + i%10 ) * 10;
_root["clip"+clipId]._alpha = alphaVal;
if( i++ < 39 ) alphaInt = setInterval(alphaMaster, rate);

}
//в нужный момент:
alphaMaster();

PS: Примерно так. Если пишешь под 8-ку, можно юзать setTimeout - строчка кода уберется.
PS2: Не проверял, мог напутать.

Rot pfeffer 05.11.2006 12:55

Kikasso спасибо за ответ...
Хемуль, у вас всегда такие подробные ответы=)...большеваты немного конечно, помогите разобраться, если не сложно пояснения написать...
Что сдесь отвечает за появления мувика в определенных координатах, например мне надо, чтоб мувики по заданным координатам в разных местах появлялись

Rot pfeffer 05.11.2006 19:55

разобрался что где и как появляется, обясните лучше вот эту чать кода
Код:

function createTweenForClip(clip:Number)
{
        var clipToTweenName:String = movieClipsBaseName + clip;
        var clipToTween:MovieClip = this[clipToTweenName];
        var newTween:Tween = new Tween(clipToTween, "_alpha", None.easeNone, 0, 100, movieClipsDissolveSpeed, false);
        if (clip < movieClipsNumber)
        {
                newTween.onMotionFinished = function()
                {
                        createTweenForClip(clip + 1);
                };
        }


Rot pfeffer 05.11.2006 20:17

и еще. попытался вместо мувиков использовать кнопки, но почему то они все слевом вверхнем углу создаются? какой метод отвечате за создание кнопок?


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

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