2015-01-23 2 views
0

У меня есть duvifa, который:Как сделать маску в AS3

Интересно, если это можно сделать маску в MovieClip, как это показано ниже:

Если это изображение было бы начало игры.

enter image description here

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

enter image description here

Как показано ниже:

enter image description here

А также хотел бы знать, могу ли я получить процент от того, что было заполнено в форме, чтобы увидеть, если пользователь заполнил по меньшей мере 40 %.

Спасибо У.

+0

Маска достаточно легко, вы можете клонировать фоновое изображение и использовать его в качестве маски крема, или использовать 'режим смешивания ALPHA' на нем и установите режим наложения общего родителя на' LAYER'. 40%, вероятно, потребует чтения пиксельных данных, что немного сложнее. – BadFeelingAboutThis

+0

Я тебя достал! Спасибо, но вы бы сделали пример AS3-кода, как это сделать? Я новичок в ActionScript. –

+0

Покажите свой текущий код, а затем пример может быть адаптирован к этому – BadFeelingAboutThis

ответ

1

Вот краткий пример использования flashPro, предполагая, что у вас есть форма графика как импорт .png объекта библиотеки с экспортом для Actionscript класса MC.

import flash.display.Shape; 
import flash.events.Event; 
import flash.display.BlendMode; 

var mc:MC = new MC(); //the background image 
addChild(mc); 

var drawing:Shape = new Shape(); //drawing foreground 
addChild(drawing); 

var mcMask:MC = new MC(); //mask version of background image 
addChild(mcMask); 

var outerMask:Shape = new Shape(); //this object masks the areas outside the bounds of mcMask object 
outerMask.graphics.beginFill(0); 
outerMask.graphics.drawRect(0,0,mcMask.width,mcMask.height); 
outerMask.graphics.endFill(); 
addChild(outerMask); 

drawing.mask = outerMask; //the mask to the shape whose dimensions equal the image mask 

mcMask.blendMode = BlendMode.ALPHA; //this tells the mask graphic to make things underneath it use the same alpha data as this image. This works will with PNG masks. 
this.blendMode = BlendMode.LAYER; //the parent needs to have a blend mode of LAYER for it to work properly 

stage.addEventListener(MouseEvent.MOUSE_MOVE,draw); 

function draw(e:Event):void { 
    trace("draw"); 
    drawing.graphics.beginFill(0x0000FF); 
    drawing.graphics.drawCircle(mouseX,mouseY,10); 
    drawing.graphics.endFill(); 
} 
+0

Большое спасибо! Дал адаптированный код, но он отлично работал ... теперь только отсутствует часть чтения пикселей ... если у вас есть какие-либо идеи, как это сделать, пожалуйста, помогите мне ... –

+1

Я делал это раньше, но это было, вероятно, 8 лет назад. Я посмотрю, смогу ли я выкопать этот старый проект. – BadFeelingAboutThis

+0

Спасибо за вашу помощь и внимание! Написал этот вопрос в новом разделе, если вы хотите встретиться там ... Объятия! http://stackoverflow.com/questions/28164098/retrieving-percentage-of-colors-of-a-movieclip –

Смежные вопросы