在Flash中动态加载图像

时间:2011-10-10 06:36:31

标签: actionscript-3

我必须使用actionscript 3.0,PHP和Mysql动态加载图像。我在数据库中有图像路径。现在如何在Flash中显示图像?

3 个答案:

答案 0 :(得分:1)

你必须使用AS3 Loader类才能做到这一点。 Loader类应加载php脚本。 PHP脚本应该从MySQL数据库加载图像并显示它。它可能看起来像那样:

AS3:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded);
loader.load(new URLRequest(urlToYourPhpScript));

function ImageLoaded(e:Event) {
    addChild(e.target.loader.content);
}

其中urlToYourPhpScript可以包含一些获取变量以识别您的图片:urlToYourPhpScript = 'http://www.example.com/?imageid=10'

PHP:

$link = mysql_connect("localhost", "username", "password") or die("Error: " . mysql_error());

// select our database
mysql_select_db("test") or die(mysql_error());

// get the image from the db
$sql = "SELECT image FROM images WHERE id=".$_GET['imageid'];

// the result of the query
$result = mysql_query("$sql") or die("Query error: " . mysql_error());

// set the header for the image
header("Content-type: image/jpeg");
echo mysql_result($result, 0);

// close the db link
mysql_close($link);

其中$_GET['imageid']是从AS3传递的用于识别图像的参数。

答案 1 :(得分:0)

我不了解PHP部分,但在ActionScript中,最好将Loader添加到舞台而不是添加内容:

  1. 在这种情况下,代码更简单,因为您根本不必处理完整事件。
  2. 如果您尝试直接访问从不同服务器加载的图像的'content'字段 - 您将获得安全异常,并且必须将crossdomain.xml放在带有图像的服务器上(如果图像不可能-server不属于你)。
  3. 所以AS3部分看起来像这样:

    const loader:Loader = new Loader();
    loader.load( new URLRequest( imageURL ) );
    addChild( loader )
    

答案 2 :(得分:0)

从Flash / Actionscript布道者Lee Brimelow查看这些教程:
Introduction to AmfPHP part 2
Introduction to Zend AMF

如果您不知道,gotoandlearn.com是Flash所有内容的绝佳资源。

希望这有帮助!