FlashVarsで渡した数値の扱いについて

ハマったので自分用にメモしておきます。


FlashVarsに数値のパラメータを渡した時、Number型の変数に代入しても文字列のままになってしまう。

Number型を期待して処理すると期待通りの動作にならない。


class Hoge {
var cols:Number;
var rows:Number;

function Hoge() {
this.cols = _root.cols || 8;
this.rows = _root.rows || 3;
}
}

こうすると、cols,rowsはそれぞれ文字の"8"と"3"となってしまうため、このまま数値と足し算(+)すると文字列になってしまう。

引き算やかけ算・割り算は問題なし。


this.cols = Number(_root.cols) || 8;
this.rows = Number(_root.rows) || 3;

とすれば、Number型にキャストされるので、期待通りの動作になった。

Google App Engineの管理画面

app.yaml

handlers:

- url: /admin/.*
  script: $PYTHON_LIB/google/appengine/ext/admin
  login: admin

と書くと、http://localhost:8080/admin で管理用の画面にアクセスできる。
Datastore APIで突っ込んだデータを参照したり編集できる。これは便利だ。

Google App Engine!!

App Engine - Build Scalable Web & Mobile Backends in Any Language  |  App Engine  |  Google Cloud

すごいね、これ。
約500万PV/月までタダなので色々面白い事が出来そう。


早速アカウント申し込んだけどちょっと遅かったみたい・・・

Google App Engine with django

とりあえずSDKをインストールして簡単なアプリを作成してみた。
Google App Engine Documentation  |  App Engine Documentation  |  Google Cloudを一通りやったあと、djangoでアプリを作ってみたけどちょっとはまったので書いておきます。
ちなみにpythondjangoも初めてさわったので間違ってるところがあるかも。

まずはbootstrap

Getting Started With Django  |  Python  |  Google Cloudそのままだとダメだった。

# Google App Engine imports.
from google.appengine.ext.webapp import util

from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)


# Force Django to reload its settings.
from django.conf import settings
settings._target = None

import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher

# Log errors.
#django.dispatch.dispatcher.connect(
#       log_exception, django.core.signals.got_request_exception)

# Unregister the rollback event handler.
django.dispatch.dispatcher.disconnect(
                django.db._rollback_on_exception,
                django.core.signals.got_request_exception)

def main():
        # Create a Django application for WSGI.
        application = django.core.handlers.wsgi.WSGIHandler()

        # Run the WSGI CGI handler with that application.
        util.run_wsgi_app(application)

if __name__ == '__main__':
        main()

Google グループGoogle グループを参考にしました。

djangoアプリを作る

 $ django-admin.py startproject mysite

settings.pyを編集する

Getting Started With Django  |  Python  |  Google Cloudの Updating Django Settings のように設定する。が、やっぱり動かず。
ファイルの先頭に import os を追加したらOKでした。

とりあえず動作確認

app.yamlを作成する。

application: test
version: 1
runtime: python
api_version: 1

handlers:
  - url: /static
    static_dir: static

  - url: /.*
    script: main.py

これでdev_appserver.pyを実行して開発用のサーバーを起動してhttp://localhost:8080/を確認すると、djangoのデフォルトのページらしきものが表示された。