【AS3】FlashDevelop【フリー】 (601レス)
上下前次1-新
抽出解除 レス栞
466(2): 465 2010/11/09(火)17:35 ID:aID2qAbN(2/7) AAS
>>465の続き(2/5)
package
{
import flash.display.*;
import flash.events.*;
public class Main extends Sprite
{
[Embed(source = 'assets/bg.png')]
private static const BG:Class;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var bg:Bitmap = new BG();
addChild(bg);
}
}
}
この中身は理解している
一語一句とまでは行かないが、各行の意味は理解。
HTMLで言うところの<html><body background="hoge.jpg"></body></html>の状態。
469(1): 465 2010/11/09(火)17:47 ID:aID2qAbN(5/7) AAS
>>465-468の続き(5/5)連投スマソ、最後です。
Error: Access of undefined property bg.(45,47行目に対して各2回)
わからないなりに推測すると、
関数private function init()で定義した変数「bg」を、
別のprivate function resized()でそのまま使ったから、
見つかりませんと言われたのだろう。
それならってことでvar bg:Bitmap = new BG();のvarを取ると、
Main.as(25): col: 20 Error: Illegal assignment to class Bitmap.
って怒られる。
パスの指定が間違ってるとかそういうことか?
はたまた、JSの様にresize(bg);
function resize(hoge){}みたいに変数の受け渡しするのか?
その場合、e:Eventとvoidはどうしたらいいのか?
そもそもAS3の考え方を理解できていない気もする。
詳しい人の意見を聞かせてください。
472: 465 2010/11/09(火)18:18 ID:aID2qAbN(7/7) AAS
解決ソース。>>466のfunction initの中身を以下に書き換える。要するにfunction resizedを内包した。
private function init(e:Event = null):void
{
stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = "TL"
removeEventListener(Event.ADDED_TO_STAGE, init);
var bg:Bitmap = new BG();
addChild(bg);
var parH:Number = stage.stageHeight / 542;
var parW:Number = stage.stageWidth / 962;
if (parH < parW) {bg.scaleX = parW;bg.scaleY = parW;}
else {bg.scaleX = parH;bg.scaleY = parH;}
function resized(e:Event):void {
var parH:Number = stage.stageHeight / 542;
var parW:Number = stage.stageWidth / 962;
if (parH < parW) {bg.scaleX = parW;bg.scaleY = parW;}
else {bg.scaleX = parH;bg.scaleY = parH;}
}
stage.addEventListener(Event.RESIZE, resized);
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.021s