Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   blendMode + rotationX/Y/Z (http://www.flasher.ru/forum/showthread.php?t=137782)

$mival 22.03.2010 16:36

blendMode + rotationX/Y/Z
 
Привет!
случилось мне столкнуться с бленд модэ.
ситуация такая, если у спрайта поменять бленд и его родителя повернуть например rotationY, то бленд не работает. (bug?)

вот этот код не работает (наложения не происходит)
зы: GlobalUtils.createRec, рисует прямоугольник и возвращает спрайт

Код AS3:

var sp:Sprite = new Sprite();
var sp0:Sprite = GlobalUtils.createRec(20, 20, 300, 40, 0xd70d29, 1);
sp0.blendMode = BlendMode.MULTIPLY;
sp.addChild(sp0);
sp.rotationY = 30; // если убрать поворот или поворачивать sp0, то такое наложение работает
 
var sp1:Sprite = GlobalUtils.createRec(10, 10, 300, 40, 0x0000FF, 1);
 
super.addChild(sp1);
super.addChild(sp);

как быть при таких ограничениях?

Artic 23.03.2010 22:38

вот так работает
Код AS3:

var sp:Sprite = new Sprite();
var sp0:Sprite = createRec(20, 20, 300, 40, 0xd70d29,1);
sp.blendMode = BlendMode.MULTIPLY;
sp.addChild(sp0);
sp.rotationY = 30; // если убрать поворот или поворачивать sp0, то такое наложение работает
 
var sp1:Sprite = createRec(10, 10, 300, 40, 0x0000FF,1);
 
addChild(sp1);
addChild(sp);
 
 
function createRec(x:Number,y:Number,width:Number,height:Number,color:uint,alpha:Number):Sprite
{
        var s:Sprite = new Sprite();
        s.graphics.beginFill(color,alpha);
        s.graphics.drawRect(x,y,width,height);
        s.graphics.endFill();
        return s;       
}


$mival 23.03.2010 22:46

нуда, потому что блендуемый и его фон лежат в одном паренте, когда имеют разный парент и поворот, то всё, кирьдык :(

Artic 23.03.2010 23:10

угу ... но врятли это баг ... более чем уверен что это документировано

Zebestov 23.03.2010 23:11

Код:

symbol1(parent)
 -symbol2(3D) - вот ему надо делать Multiply
  -symbol3(movieclip) - а не ему
symbol4 - имеет с symbol2 разные паренты, а все работает

проверял тупо в таймлайне на картинках.

$mival 23.03.2010 23:13

........

Добавлено через 3 минуты
Цитата:

Сообщение от Zebestov (Сообщение 895194)
Код:

symbol1(parent)
 -symbol2(3D) - вот ему надо делать Multiply
  -symbol3(movieclip) - а не ему
symbol4 - имеет с symbol2 разные паренты, а все работает

проверял тупо в таймлайне на картинках.

да, работает, ситуация описана конкретная и добавить бленд надо уже в написанный движок, а в нем: поворачивается НЕ блендуемый, а его РОДИТЕЛЬ

Добавлено через 8 минут
Цитата:

Сообщение от Artic (Сообщение 895193)
угу ... но врятли это баг ... более чем уверен что это документировано

что-то здесь я этого не увидел
http://help.adobe.com/ru_RU/AS3LCR/F...html#blendMode

вообще конечно даже если это задокументировано, это как то очень странно и нелогично, если при повороте блендуемого все норм, то почему нельзя повернуть парент без последствий?

Artic 23.03.2010 23:24

да как то странно действительно на таймЛайне работает ! а кодом аналогичный код не работает !


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

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