【问题标题】:How do I embed a .swf file into my Google App Engine app?如何将 .swf 文件嵌入到我的 Google App Engine 应用程序中?
【发布时间】:2011-03-31 03:08:39
【问题描述】:

首先我是新来的,所以如果我犯了任何错误,请指出。

我正在使用 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> &raquo;&nbsp;&nbsp;&nbsp;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;">&nbsp;</div>
</div>
<!-- end page -->
<!-- start footer -->
<div id="footer">
    <p id="legal"></p>
</div>
<!-- end footer -->
</body>
</html>

因为我是新人所以不能直接发照片

the way the browser shows it

这是当我查看渲染的(不管它叫什么)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> &raquo;&nbsp;&nbsp;&nbsp;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;">&nbsp;</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> 

这些是我根目录下的文件夹及其内容

  • 图片
    • img01.jpg
    • img02.jpg
    • img03.jpg
    • spacer.gif
  • 快闪游戏
    • aow2.swf
  • 样式表
    • default.css

【问题讨论】:

    标签: python django flash google-app-engine static


    【解决方案1】:

    这看起来不像是嵌入 Flash 应用程序的标准方式 - 也不是 App Engine 问题。你有一个只有尺寸的对象标签,还有一个嵌入标签,里面只有一个 URL。您是否尝试过使用一些标准的嵌入标记来做到这一点? Flash 环境应该提供一种简单的方法来导出嵌入在 HTML 页面中的应用程序。您是否尝试过在磁盘上使用简单的静态 HTML 文件,以便更轻松地调试 App Engine 并将其排除在外?

    【讨论】:

    • 好的,删除了 标签,但仍然有同样的问题,您现在可以帮帮我吗?请。
    • @Jonathan 删除对象标签不是我的建议。您是否尝试过我的任何建议,例如使用 Flash 生成包含您的应用的静态 HTML 文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2020-09-01
    • 2011-07-13
    相关资源
    最近更新 更多