日々のデザイン現場で発生する問題・難題を解決します!
WEB制作トラブル速戦即決術! 第5回
[TROUBLE 26] |
イベントターゲットを 表示オブジェクトとして扱うとエラーになる |
文=秋葉秀樹
A. | 型変換(キャスト)をするか「as演算子」で型チェックを行う |
マウスイベントなどのイベントハンドラを記述する際、Event.targetプロパティで得たイベントターゲットオブジェクトをSprite(表示オブジェクト)型のような変数に直接代入する。そうすると「静的型Objectの値が、関連しない可能性の高い型flash.display.Spriteに暗黙で型変換されています」というエラーが起こる。Sprite型と決まった型に変換する方法と「as演算子」を使用した方法のふたつで解決できる。
メインタイムライン上にSpriteオブジェクトをつくり、長方形をグレーで塗りつぶした。その中に赤で塗りつぶした長方形をもつムービークリップをオブジェクトとして配置し、親子関係にしておいた。クリックすると10°ずつ傾くように設定しておく
右図のqの場合はSprite型と決まった型に変換する方法として広く用いられている記述である。wは「as演算子」を使用した方法で、qとは本質的に目的が異なり「型チェック」を行う際のひとつの手段である
赤がムービークリップでグレーがSpriteの場合、「Spriteで型チェック」するとよい。赤がクリックされたらムービークリップ、グレーならSpriteが返る。代入される変数はDisplayObject型にして、両方の型が扱い可能となり解決する
[INDEX]
>>> [TROUBLE 23]定義リストで日付とタイトルがきれいに横並びにならない
>>> [TROUBLE 24]記述にまちがいはないのにJavaScriptが動作しない
>>> [TROUBLE 25]IE 6後方互換モードでセンタリングができない
>>> [TROUBLE 26]イベントターゲットを表示オブジェクトとして扱うとエラーになる
>>> [TROUBLE 27]CSSの適用優先順位がわからずうまく表示できない
『web creators』の情報はこちら!>>>