我需要一些帮助才能将PNG文件从服务器加载到我的flash项目中。我想要做的是能够调用PHP页面并向其发送一个我可以做的变量。然后我想访问数据库并获取图像的路径,我也可以这样做。我不确定的是那时该做什么。 我需要发生的是PHP以某种方式将PNG返回闪存。我可以将PNG添加到php页面并以某种方式使用加载器吗?我一直在谷歌搜索,但大多数教程似乎得到了PNG。
由于 本
答案 0 :(得分:4)
实际上很容易。 :)
<?php
// do some mysql magic.
// let's assume you get a filename back as $file_name;
header('Content-type: image/png');
readfile($file_name);
请注意,您可能还必须包含一些路径信息。不确定图像的存储位置,但如果图像位于/ var / www / public / images中,则需要将其添加到file_get_contents调用中。
补充:此外,如果您只想返回PNG的路径,您可以对PHP文件执行URLRequest,让它找出图像所在的位置,并返回一个URL。这更容易......我只是建议标准化数据交换协议,如XML或(甚至更好)JSON ......这样,如果你决定要打破Flash和浏览器技术,你的后端已经在等你。
<?php
// do some mysql magic.
// let's assume you get a filename back as $file_name;
$retVal = array('pathname'=>$file_name);
header('Content-type: application/json');
echo json_encode($retVal);
答案 1 :(得分:2)
如果你可以将网址返回到flash那就足够了。
import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
rect.graphics.endFill();
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = ""; //put the returned img url you got from the php here.
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq); //the loader will start loading the img
addChild(ldr); //here you add the loader to stage.
也许是一两毫秒,你什么也看不见。但是只要加载程序加载了img,你就会看到它。
您必须输入返回的img网址。所以不是返回img url的网页的网址。
如果你将上面的内容与John Green的答案结合起来 - PageSpike你可以使用我的代码,只要php页面是John Green中的那个 - PageSpike他的答案你传递而不是返回的img然后通过url到带有参数的php页面;
var url:String = "http://www.yoursite.com/getImage.php?imgParameter=image123";
因此,url现在是John Green脚本的链接 - PageSpike将返回图像。
答案 2 :(得分:1)
正如Jhon Green所说,它会起作用
http://www.yourserver.com/filesforflash/?file_id={id}
header('Content-type: image/png');
readfile($file_name);
但有时您可能还需要上面的网址即使您发送内容类型为image / png的标头也无法使用。对此的快速提示是,如果其ID
,则发送文件名本身http://www.yourserver.com/filesforflash/{id}-filename.png
为此你可能需要使用mod-rewrite。