[Flex3]Adobe AIRとFlex 3が正式リリース

Posted under Flex/AIR/Flash by uechoco on 水曜日 27 2月 2008 at 00 : 00 : 00

Adobe、「AIR」「Flex 3」正式リリース – ITmedia News
http://www.itmedia.co.jp/news/articles/0802/25/news070.html

 ついに正式リリースされました。Flex 3は現時点では英語版のみの提供ですが、順次言語を増やすそうです。

 そしてFlex 4の開発も始まっているようです。

Flex 4 – Flex Coder
http://d.hatena.ne.jp/sato-shi/20080225/p5

 ここのブログはFlexとかでAdobeと仲の良い会社の社長さんが書いているので、信憑性は高いはず。


[Flex3]Atomフィードを読み込むサンプル

Posted under Flex/AIR/Flash by uechoco on 日曜日 24 2月 2008 at 00 : 00 : 00

Flex 2 / 3で、Atomフィードを読み込んで、ごにょごにょするための土台になるサンプル。他にも方法はあるけど、最初に覚えた方法なのでこう書きました。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="appInit();">
<mx:Script><![CDATA[
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.*;
import mx.controls.Alert;

private const ATOM_URL:String = "http://rss.rssad.jp/rss/gihyo/feed/atom";
private namespace atom = "http://www.w3.org/2005/Atom";
use namespace atom;

private var entryArray:Array = new Array();
private var feed:XML;

private function appInit():void
{
var req:URLRequest = new URLRequest(ATOM_URL);
var ldr:URLLoader = new URLLoader();
ldr.addEventListener(IOErrorEvent.IO_ERROR, onAtomLoadIOError);
ldr.addEventListener(Event.COMPLETE, onAtomLoadComplete);
ldr.load(req);
}
private function onAtomLoadIOError(event:IOErrorEvent):void
{
Alert.show("failed to open url:"+ATOM_URL);
}

private function onAtomLoadComplete(event:Event):void
{
//Alert.show("successed to open url:"+ATOM_URL);
var ldr:URLLoader = URLLoader(event.target);
feed = XML(ldr.data);
var n:int = feed.entry.length();
for (var i:int = 0; i < n; i++ ) {
entryArray.push(String(feed.entry[i].title));
}
lstMain.dataProvider = entryArray;
}
]]></mx:Script>
<mx:List id="lstMain" width="100%" height="100%" />
</mx:Application>

■追記(2008/02/26 16:20)

いそっちノートの中の人に言われて思い出したんですが、Flashにはクロスドメイン制約というものがあります。具体的に言うと原則的に同一のドメイン内のURL(画像やRSS、Atomなど)にしかアクセスできないという制約です。あくまで原則的にです。このswfファイルをローカルで実行する分には関係ないのですが、ブラウザで実行しようとすると、たぶん読み込めないです。なので、クロスドメインポリシーによってアクセスが許可されているAtomに適宜変更するか、あるいはあくまでサンプルだと思ってください。もちろん、このソースコードに重大なミスがあるわけではありません(笑

参考

Atomをパースするなら – Flex Coder


[Flex3]PanelやCanvasのスクロールバーを消す方法

Posted under Flex/AIR/Flash by uechoco on 土曜日 23 2月 2008 at 00 : 00 : 00

 FlexのContainerクラスやそのサブクラス(Accordion, Box, Canvas, Form, FormItem, LayoutContainer, Panel, Tile, ViewStack)は、子コントロールが表示領域を越えると、自動で縦スクロールバーや横スクロールバーが表示されるようになっていますが、その機能がかえって邪魔になる場合があります。

 そういった場合は、ContainerクラスのプロパティのverticalScrollPolicyhorizontalScrollPolicyに値を設定することで、スクロールバーの表示動作を変更することができます。この2つのプロパティは、デフォルトで“auto”、つまり必要なときだけ自動的にスクロールバーが表示されるモードになっていますが、“on”、つまり常に表示と、“off”、つまり常に非表示という値も設定できます。
 よって、PanelやCanvasなどのContainerクラスのサブクラスでスクロールバーを非表示にしたい場合は

<mx:Canvas
??id="cvsMain" width="100%" height="100%"
??verticalScrollPolicy="off" horizontalScrollPolicy="off"
/>

のようにmxmlを書きます。

verticalScrollPolicy – Container – Adobe® Flex™ 2 リファレンスガイド
ScrollPolicy – Adobe® Flex™ 2 リファレンスガイド


[Flex3]CodeZine:Flex基礎講座(パート4)をFlex3で書き直してみる

Posted under Flex/AIR/Flash by uechoco on 金曜日 22 2月 2008 at 00 : 00 : 00

 前回の[Flex3]CodeZine:Flex基礎講座(パート3)をFlex3で書き直してみるの続きで、今度はCodeZine:Flex基礎講座(パート4):データモデルの利用(データモデル, MXML, MVC, Macromedia Flex, ActionScript)のFlex3化に挑戦しました。予め断っておくことは、今回はFlex3化ができませんでした。例のごとく気づいた点だけピックアップ。

 mx:DaraGridColumnタグにcolumnNameというプロパティがありますが、おそらくdataFieldプロパティに替わったと思います。根拠としては、DataGridColumnクラスのコンストラクタの詳細に、仮引数名がcolumnNameという文字のままなのに、説明を読むと、この値はdataFieldheaderTextにセットされるような英語が書いてあります。

 で、ここから先はエラーが解決できなくて、やむなく断念しました。どうやらmx:ModeldataProviderあたりがうまく動かないです。エラーには「型が見つからないか、コンパイル時定数ではありません」とでてくるのですが、バインディングが正しくないのかもしれません。

 どちらにせよ、かなりの時間を費やしても解決できなかったので、これ以上、このサンプルに時間をかけるよりも他のサンプルに手を出したほうが懸命だと思って断念しました。


[Flex3]CodeZine:Flex基礎講座(パート3)をFlex3で書き直してみる

Posted under Flex/AIR/Flash by uechoco on 木曜日 21 2月 2008 at 00 : 00 : 00

 前回の[Flex3]CodeZine:Flex基礎講座(パート2)をFlex3で書き直してみるの続きで、今度はCodeZine:Flex基礎講座(パート3):コンテナの利用(コンテナ, MXML, Macromedia Flex, ActionScript)のFlex3化に挑戦しました。例のごとく気づいた点だけピックアップ。

 TabNavigatorのMXML定義のところで

<mx:TabNavigator id="tabNav" marginLeft="10" marginTop="20">
</mx:TabNavigator>

?

とありますが、marginLeftmarginTopといったプロパティが見当たりません。しょうがないので近そうなpaddingLeftpaddingTopに置き換えてしまいました。

?

 Form/TileタブのFormパネル内にmyComboというComboBoxがあります。定義は

<mx:ComboBox id="myCombo" dataProvider="{myArray}"/>

?

となっていますが、実行すると「Data binding will not be able to detect assignments to “myArray”.」という警告がでます。judah’s blog ? Blog Archive ? Data Binding is also a Gateway to ActionScript from MXMLというに記事よると[Bindable]というメタタグを変数の定義につけてやると解決できるとあったので、myArrayの定義のところを

[Bindable]
public var myArray:Array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

?

に置き換えてやると、正しく動きました。「public」とか「:Array」がなくてエラーが出たけどそこらへんはすぐにわかると思うので、省略。

?

 Sales Trends Chartタブのところで、「Could not resolve to a component implementation.」というエラーが発生しました。これは、Adobe Flex ChartingというFlexとは別途販売しているチャートコンポーネントライブラリの一部のような気がします。ようは、お金出さないとこのコンポーネントが手に入らないような気がするのですが、どうなんでしょう?

flex_CodeZine_Container.jpg

 チャートが描けないのは残念だなぁ。実行結果とか、チャートコンポーネントのサンプルとかみてると、このコンポーネントはやばぃwwって思ったのに。


次ページへ »

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.