2010-03-04 2 views
0

Я изучаю Pixel Bender. У меня есть фильтр, для которого я хочу изменить. насколько я знаю, для того чтобы tween параметр пикселя bender, мне нужно tween номерного объекта и назначить объект tweening number в качестве значения массива для данных шейдера.Tweening Pixel Bender Filter с использованием номера с базовым классом Tween в ActionScript 3.0

я был убежден, что следующий будет работать, но это, кажется, что число классов не имеют свойство значения, поэтому я не знаю, что свойство для использования при создании новой анимации для объекта номер:

import fl.transitions.*; 
import fl.transitions.easing.* 

var shader:Shader; 
var shaderFilter:ShaderFilter; 
var motionTween:Tween; 
var tweenNumber:Number = new Number(0.0); 
var loader:URLLoader = new URLLoader(); 

loader.dataFormat = URLLoaderDataFormat.BINARY; 
loader.addEventListener(Event.COMPLETE, dataLoaded); 
loader.load(new URLRequest("PBFilter.pbj")); 

function dataLoaded(e:Event):void 
    { 
    loader.removeEventListener(Event.COMPLETE, dataLoaded); 
    shader = new Shader(e.target.data); 
    shaderFilter = new ShaderFilter(shader); 
    flower.filters = [shaderFilter]; 

    motionTween = new Tween(tweenNumber, "value", Bounce.easeOut, 0.0, 100.0, 5, true); 
    motionTween.addEventListener(TweenEvent.MOTION_CHANGE, updateFilter); 
    } 

function updateFilter(e:TweenEvent):void 
    { 
    shader.data.amount.value = [tweenNumber]; 
    myMovieClip.filters = [shaderFilter]; 
    } 
+0

Ничего не стоит с вопросом, но вы можете объявить tweenNumber как 'var tweenNumber: Number = 0.0;' – Patrick

ответ

3

может быть, вы можете добавить геттер и сеттер для вашего промежуточных кадров в тестовом классе:

//... 
public function get amount():Number { 
return tweenNumber; 
} 
public function set amount(value:Number):void { 
tweenNumber=value; 
} 
//... 
motionTween = new Tween(this, "amount", Bounce.easeOut, 0.0, 100.0, 5, true); 
motionTween.addEventListener(TweenEvent.MOTION_CHANGE, updateFilter); 
//... 

- или сделать обновление в вашем инкубаторе

//... 
public function get amount():Number { 
return tweenNumber; 
} 
public function set amount(value:Number):void { 
tweenNumber=value; 
shader.data.amount.value = [value]; 
myMovieClip.filters = [shaderFilter]; 
} 
//... 
motionTween = new Tween(this, "amount", Bounce.easeOut, 0.0, 100.0, 5, true); 
//... 
+0

oh я вижу. Я неправильно писал параметры твинов. Tween (это, «tweenNumber», ...) отлично работает. Благодарю. – TheDarkIn1978