问题描述
|
在将PNG文件从服务器加载到Flash项目中时,我需要一些帮助。我想要执行的操作是能够调用PHP页面并将其发送给我可以执行的变量。然后,我想访问数据库并获取图像的路径,我也可以这样做。我不确定该怎么办。
我需要做的是PHP使PNG以某种方式返回到Flash。我可以将PNG添加到PHP页面并以某种方式使用加载程序吗?我一直在搜索Google,但是大多数教程似乎都在发布PNG。
谢谢
本
解决方法
这实际上很容易。 :)
<?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);
,如果您只需将网址返回Flash,就足够了。
import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(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.
也许对于一两个Millisec,您什么都看不到。但是,一旦加载程序加载了img,您就会看到它。
您必须输入返回的img URL。因此,不是返回img URL的网页的URL。
如果您将以上内容与John Green-PageSpike的答案结合使用,则可以使用我的代码,只要php页面是John Green-PageSpike他的答案的php页面,然后传递而不是返回的img,然后将url传递给带有参数的php页面;
var url:String = \"http://www.yoursite.com/getImage.php?imgParameter=image123\";
因此,该网址现在是指向John Green-PageSpike脚本的链接,它将返回完整的图像。
,正如Jhon Green提到的那样,它将起作用
http://www.yourserver.com/filesforflash/?file_id={id}
header(\'Content-type: image/png\');
readfile($file_name);
但有时您可能还需要上述url即使发送内容类型为image / png的标头也无法使用。快速提示是发送文件名本身,而不是其ID
http://www.yourserver.com/filesforflash/{id}-filename.png
为此,您可能需要使用mod-rewrite。