如何将.swf文件嵌入我的Google App Engine应用中?
首先,我是新来的,如果我有什么错误,请告诉我。
我正在做一个用Python开发的应用程序项目,我想上传并播放.swf格式的游戏。但是我在让应用程序引擎发送(交付、渲染、显示……我不太确定用哪个词)以.swf结尾的文件时遇到了问题。
我哪里做错了?
我尝试在我的对象标签中嵌入一张图片,以确保我的HTML和Django模板不是导致问题的原因,结果是可以正常工作的。
这是我的app.yaml文件
application: flashstealer
version: 1
runtime: python
api_version: 1
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /flashgames
static_dir: flashgames
- url: .*
script: main.py
……还有我的main.py
import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
class Game(db.Model):
name = db.StringProperty()
description = db.StringProperty()
tags = db.StringListProperty()
playcount = db.IntegerProperty()
location = db.StringProperty()
originallocation = db.StringProperty()
class MyHandler(webapp.RequestHandler):
def get(self):
games = db.GqlQuery('SELECT * FROM Game LIMIT 20')
self.response.out.write(template.render('main.html',{'games': games}))
def post(self):
game = Game(
name = self.request.get('name'),
description = self.request.get('description'),
#tags = self.request.get('tags'),
#playcount = self.request.get('playcount'),
location = self.request.get('location'),
originallocation = self.request.get('originallocation'))
game.put()
self.redirect("/")
def main():
app = webapp.WSGIApplication([(r'.*', MyHandler)],debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == '__main__':
main()
……以及我的main.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Emporium by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="stylesheets/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<!-- start header -->
<div id="logo">
<h1><a href="#">The Arcade</a></h1>
<h2> » but just a fondation for now</h2>
</div>
<div id="header">
<div id="menu">
<ul>
<li class="current_page_item"><a href="#">Homepage</a></li>
<li><a href="#">Blogs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">About</a></li>
<li class="last"><a href="#">Contact</a></li>
</ul>
</div>
</div>
<!-- end header -->
</div>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
{% for game in games %}
<div class="post">
<h1 class="title">{{game.name}}</h1>
<div class="entry">
<embed src="{{game.location}}" width="100%" height="400">
<p>{{game.description}}</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count ({{game.playcount}})</a>
</p>
</div>
</div>
{% endfor %}
<div class="post">
<h2 class="title">Submit Games Here</h2>
<div class="entry">
<form action="" method="post">
<fieldset>
Name:<p><input type="stringfield" name="name" ></p>
Descrition:<p><input type="stringfield" name="description"></p>
Original Location:<p><input type="stringfield" name="originallocation"></p>
Playcount:<p><input type="stringfield" name="playcount" ></p>
Location:<p><input type="stringfield" name="location"></p>
Tags:<p><input type="stringfield" name="tags"></p>
<p><input type="submit" value="post"></p>
</fieldset>
</form>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Comments (32)</a>
</p>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<ul>
<li id="search">
<h2>Search</h2>
<form method="post" action="">
<fieldset>
<input type="text" id="message" name="message" value="" />
<input type="submit" id="x" value="Search" />
</fieldset>
</form>
</li>
<li>
<h2>To Do</h2>
<ul>
<li><a href="#">make a list of games in db</a></li>
</ul>
</li>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end page -->
<!-- start footer -->
<div id="footer">
<p id="legal"></p>
</div>
<!-- end footer -->
</body>
</html>
因为我是新手,所以不能直接上传照片。
这是我查看渲染后的(不管叫什么)HTML时的显示效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Emporium by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="stylesheets/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<!-- start header -->
<div id="logo">
<h1><a href="#">The Arcade</a></h1>
<h2> » but just a fondation for now</h2>
</div>
<div id="header">
<div id="menu">
<ul>
<li class="current_page_item"><a href="#">Homepage</a></li>
<li><a href="#">Blogs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">About</a></li>
<li class="last"><a href="#">Contact</a></li>
</ul>
</div>
</div>
<!-- end header -->
</div>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title">Test with .swf</h1>
<div class="entry">
<embed src="/flashgames/aow2.swf">
<p>This is were the problem starts because it leaves a spot where the game should be but there's no game.</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count (None)</a>
</p>
</div>
</div>
<div class="post">
<h1 class="title">Test with .img</h1>
<div class="entry">
<object width="100%" height="400">
<embed src="/images/img01.jpg">
</object>
<p>This is proof that it's not my html and template that's causing the problem</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count (None)</a>
</p>
</div>
</div>
<div class="post">
<h2 class="title">Submit Games Here</h2>
<div class="entry">
<form action="" method="post">
<fieldset>
Name:<p><input type="stringfield" name="name" ></p>
Descrition:<p><input type="stringfield" name="description"></p>
Original Location:<p><input type="stringfield" name="originallocation"></p>
Playcount:<p><input type="stringfield" name="playcount" ></p>
Location:<p><input type="stringfield" name="location"></p>
Tags:<p><input type="stringfield" name="tags"></p>
<p><input type="submit" value="post"></p>
</fieldset>
</form>
</div>
<div class="meta">
<p class="links"><a href="#" class="more">Read full article</a> <b>|</b> <a href="#" class="comments">Comments (32)</a></p>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<ul>
<li id="search">
<h2>Search</h2>
<form method="post" action="">
<fieldset>
<input type="text" id="message" name="message" value="" />
<input type="submit" id="x" value="Search" />
</fieldset>
</form>
</li>
<li>
<h2>To Do</h2>
<ul>
<li><a href="#">make a list of games in db</a></li>
</ul>
</li>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end page -->
<!-- start footer -->
<div id="footer">
<p id="legal">( c ) 2008. All Rights Reserved. <a href="http://www.freecsstemplates.org/">Bestfriends</a> designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>.</p>
</div>
<!-- end footer -->
</body>
</html>
这些是我根目录下的文件夹及其内容
- images
- img01.jpg
- img02.jpg
- img03.jpg
- spacer.gif
- flashgames
- aow2.swf
- stylesheets
- default.css
1 个回答
2
这看起来不是嵌入Flash应用的标准方式,而且这也不是App Engine的问题。你有一个对象标签,里面只有宽高信息,还有一个嵌入标签,里面只有一个网址。你有没有尝试过用一些标准的嵌入代码来实现这个呢?Flash环境应该提供一种简单的方法,让你可以把应用嵌入到HTML页面中。你有没有尝试过用一个简单的静态HTML文件在本地测试,这样可以更容易调试,也能把App Engine的问题排除在外?