前回はむりくりAS3で画像を配置したが、mxml側にアイテムを配置してみる。
配置場所とか、クリック時の挙動とかが融通効かなさそうと思ったけど
マウス押下、離す等のプロパティは用意されてて、動的にはAS側で組む必要はあるけど
可能性はありそう。
また前回はsourceにパスを直指定で呼んで画像を呼び出したが、
この場合はswfファイルにソースが含まれず都度パスを追って取りに行くみたい。
コンパイル時にswfに含めるために、「Embed」という記述を行う。
とりえあず画像ファイル分書くしかないような気がするのでこんなものを用意する。
・const.as
配置場所とか、クリック時の挙動とかが融通効かなさそうと思ったけど
マウス押下、離す等のプロパティは用意されてて、動的にはAS側で組む必要はあるけど
可能性はありそう。
また前回はsourceにパスを直指定で呼んで画像を呼び出したが、
この場合はswfファイルにソースが含まれず都度パスを追って取りに行くみたい。
コンパイル時にswfに含めるために、「Embed」という記述を行う。
とりえあず画像ファイル分書くしかないような気がするのでこんなものを用意する。
・const.as
[Embed(source = '../image/s01.png')]
private static const Image01:Class;
[Embed(source = '../image/s02.png')]
private static const Image02:Class;
~~~以下略
で、mxmlファイル側にs:Imageの箱を用意。
~~~以下略
で、mxmlファイル側にs:Imageの箱を用意。
<s:HGroup id="myCards">
<s:Image id="myCard1" />
<s:Image id="myCard2" />
<s:Image id="myCard3" />
<s:Image id="myCard4" />
<s:Image id="myCard5" />
<s:Label name="dummy"></s:Label>
</s:HGroup>
HGroupで包むと、中の要素を自動的に水平方向へ並べてくれる。
逆に、VGroupだと垂直方向。
ちなみにdummyのlabelを配置しているがこれは、AS側でHGroupの子要素をぐるぐる回したいのだけど
.columnCountのプロパティをとっても、s:Imageのみだと0が返ってくる。
Buttonでもなんでもいいので他にアイテム置くと正しく返ってくるんだけど・・・これはどうすればいいのかね。
AS側のソース
HGroupで包むと、中の要素を自動的に水平方向へ並べてくれる。
逆に、VGroupだと垂直方向。
ちなみにdummyのlabelを配置しているがこれは、AS側でHGroupの子要素をぐるぐる回したいのだけど
.columnCountのプロパティをとっても、s:Imageのみだと0が返ってくる。
Buttonでもなんでもいいので他にアイテム置くと正しく返ってくるんだけど・・・これはどうすればいいのかね。
AS側のソース
public function init():void {
for (var i:int = 0; i < myCards.columnCount; i++) {
var obj:Object = myCards.getChildAt(i);
if (obj.name != "dummy") {
obj.scaleX = 0.5;
obj.scaleY = 0.5;
obj.source = Image01;
obj.setStyle("mouseDownEffect", "rotate");
}
}
}
これで、画像が並んで表示されました。地味にクリックにrotateのエフェクトをつけてみてます。
https://dl.dropboxusercontent.com/u/189929509/Flash/20130708/Card.swf
次は、クリック時の挙動をもう少し考えてみよう。
これで、画像が並んで表示されました。地味にクリックにrotateのエフェクトをつけてみてます。
https://dl.dropboxusercontent.com/u/189929509/Flash/20130708/Card.swf
次は、クリック時の挙動をもう少し考えてみよう。