[]请教各位前辈们,AS的一些API好像layabox没有,求解决方法或者思路,比如 Point 的interpolate方法 具体问题内详

RT 
用AS写了一个效果,想拿过来使用,结果发现一些方法没有,求解决方法或者思路,刚刚才用layabox不是非常熟悉 但是功能又比较急,所以没多少时间来熟悉,求万能的前辈们帮忙!
问题如下:
1、 p1.x = p2.x = Point.interpolate(value, p4, .5).x;
2、 target.graphics.beginBitmapFill(srcbmd, mx, true);
   target.graphics.moveTo(p1.x, p1.y);
   target.graphics.lineTo(p2.x, p2.y);
   target.graphics.lineTo(p3.x, p3.y);
   target.graphics.lineTo(p4.x, p4.y);
   target.graphics.lineTo(p1.x, p1.y);
3、_mx.createGradientBox(_w, _w);(_mx为Matrix)
4、_shadow.graphics.beginGradientFill(GradientType.LINEAR, [0, 0x888888], [1, .5], [0, 255], _mx,SpreadMethod.REFLECT);
 
以上就是一些有问题的地方 具体的代码 请看附件
 
还望各位前辈不吝赐教!!!!
已邀请:

cuixueying

赞同来自:

@wuciqiang你好
  第一个问题: Point.interpolate在layaAir下如何实现?
  解答:在AS3中,Point创建的是一个对象,封装了很对方法供公开发者使用。LayaAir下,为了性能考虑,Point不再是一个对象,而是一个包含X,Y值的坐标,类似interpolate方法我们没有直接提供接口,开发者可以自行进行封装使用。

  第二个问题:beginBitmapFill以及graphics Lines如何实现?
  解答:beginBitmapFill方法已经没有了,可以使用sp.graphics.drawTexture实现类似功能
graphcis Lines 请参考:根据指定的路径数据绘制出图案以及展示Graphics提供的绘图API

   第三个问题:关于创建 Graphics 类的 beginGradientFill() 和 lineGradientStyle() 方法所需的矩阵的特定样式?
  解答:请参考:Matrix API,关于渐变的一些方法目前还没有提供接口,之后会实现。具体目前可使用的方法和属性请参考API文档,感谢!
 
  第四个问题:解答同上
 
感谢您对layabox的反馈,有问题及时告知,感谢!(*^__^*) ……
 

 

wuciqiang

赞同来自:

@cuixueying 感谢你上面做的回答
现在遇到以下的问题
public function drawImage(target:Sprite,srcbmd:Image, mx:Matrix, p1:Point, p2:Point, p3:Point, p4:Point):void
        {
            var texture:Texture = Laya.loader.getRes(srcbmd.skin);
            target.graphics.drawTexture(texture,0,0);
            var path:Array = ;
            path.push(p2.x, p2.y);
            path.push(p3.x, p3.y);
            path.push(p4.x, p4.y);
            path.push(p1.x, p1.y);
            target.graphics.drawPoly(p1.x, p1.y,path,"#FF7F50");
            
            
            _mask.graphics.drawTexture(texture,0,0);
            
            var path1:Array = ;
            path1.push(p2.x, p2.y);
            path1.push(p3.x, p3.y);
            path1.push(p4.x, p4.y);
            path1.push(p1.x, p1.y);
            _mask.graphics.drawPoly(p1.x, p1.y,path1,"#FF7F50");
        }
 
会报错 
main.max.js:1595 Uncaught TypeError: Cannot read property 'sourceWidth' of undefined
还有 _mx.createGradientBox 和 graphics.beginGradientFill 实在不知道用啥方法来替换了。哎
具体的可以看源码
 

要回复问题请先

商务合作
商务合作