gpt4 book ai didi

actionscript-3 - AS3 - 正好有 23 个空的 Alpha channel ,下面的图像停止绘制

转载 作者:行者123 更新时间:2023-12-04 04:26:48 24 4
gpt4 key购买 nike

我注意到,在尝试绘制大量圆圈时,偶尔会出现某种视觉错误,某些圆圈无法正确绘制。好吧,我缩小了范围,并注意到如果在同一点上有 23 个或更多对象的 alpha 值为 00,那么下面的对象不会绘制。它似乎是逐个像素的,因为图像的某些部分仍在绘制。

最初,这个问题是在继承 Sprite 的类中发现的。已确认 Sprite 也有问题,现在 Bitmap 也有问题。如果有人能找到比Bitmap更低级别的没有这个问题的类,请说出来,以便我们尝试找到问题的根源。

我准备了一个小测试类来演示我的意思。您可以更改第 20 行的整数值,以便查看我提出的三个测试以清楚地显示问题。

是否有任何解决方法,或者这只是我必须使用的限制?有谁之前经历过这个吗?尽管实现了基本框架,但我是否有可能做错了什么?

package 
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.BitmapData;

public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
Test(3);
}

private function Test(testInt:int):void {
if(testInt==1){
addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
for (var i:int = 0; i < 22; i++) {
addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
}
}
if(testInt==2){
addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
for (var j:int = 0; j < 23; j++) {
addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
}
}
if(testInt==3){
addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
for (var k:int = 0; k < 22; k++) {
addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
}
var M:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0x00000000));
M.x += 50;
M.y += 50;
addChild(M);
}
}
}
}

最佳答案

我不知道你为什么把位图添加为 child 。我认为你应该使用 draw() 在单个 BitmapData 上绘制所有“形状”。您可以简单地绘制形状,然后将它们绘制到 BitmapData。如果您需要更多解释,我可以更具体。

关于actionscript-3 - AS3 - 正好有 23 个空的 Alpha channel ,下面的图像停止绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com